select max(date)

select max(date) - SQL/NoSQL - Programmation

Marsh Posté le 21-02-2007 à 17:23:34    

Bonjour petit pb à soumettre :
Ma table
T_VACCINNATION
_____________
ID_VACCINATION (PK)
ID_PATIENT (FK)
INJECTION1 (date)
INJECTION2 (date)
INJECTION3 (date)
 
Mon problème :
je veux récupérer la date la plus récente des 3 colonnes injections pour un patient
merci de votre réponse

Reply

Marsh Posté le 21-02-2007 à 17:23:34   

Reply

Marsh Posté le 21-02-2007 à 21:50:41    

ton modèle de données est mal foutu. Et le jour ou on décidera qu'il y a plus que trois injections? tu vas rajouté une colonne?
 
Ta table vaccination doit contenir la structure suivante:
T_VACCINNATION  
_____________  
ID_VACCINATION (PK)
ID_PATIENT (FK)  
INJECTION (date)  
 
et chaque fois qu'il y aura une injection pour le vaccin X pour le patient Y, tu auras une nouvelle ligne dans la table tout simplement.


Message édité par moi23372 le 21-02-2007 à 21:51:37
Reply

Marsh Posté le 22-02-2007 à 10:59:44    

Code :
  1. select greatest(max(INJECTION1 ), max(INJECTION2 ), max(INJECTION3 ))
  2. FROM T_VACCINNATION
  3. WHERE ID_PATIENT = <id>


 

Reply

Marsh Posté le 22-02-2007 à 11:55:06    

merci orafrance
 
par ailleurs en réponse à moi23372, effectivement le modèle peut être mal foutu mais les injections sont totalement différentes ; on peut faire une injection3 sans faire d'injection1...
merci qd même

Reply

Marsh Posté le 22-02-2007 à 12:16:41    

si je peux encore t'embêter orafrance, si une des colonnes INJECTION est null, c'est la valeur null  qui est ramenée. Est-il possible d'exclure dans le select la colonne qui est vide ?
merci

Reply

Marsh Posté le 23-02-2007 à 11:32:27    

par exemple : NVL(INJECTIONx,'01/01/1900')

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed