16/18 Rapport Paiments médicaments 3/5 Que veut dire cette condition supplémentaire "AND Item.Prod=Prod.Nume" ?
Décomposons: Item.Prod c'est le médicament délivré dans la table Item des dispensations Prod.Nume ce sont tous les médicaments de la table Prod des produits pharmaceutiques. C'est la liste de tous les produits possibles. Avec "=" entre les deux, on demande à SQL d'aller chercher le médicament délivré dans la table des produits.
Une fois que SQL a trouvé dans la table des produits le médicament qui a été délivré, il peut lire quel est le type de médicament. C'est la 3ème condition qu'on ajoute:
total_paiment_arv<-SELECT SUM(Paim) FROM Item,Prod WHERE Paim>0 AND Item.Prod=Prod.Nume AND Prod.Typ_=3
On vérifie ainsi que le type du médicament est un ARV.
Je suis perdu. Pourquoi "Item.Prod", "Prod.Nume" et "Prod.Typ_" ? On mélange des noms de table et des noms de colonnes, non ?
On évite justement de les mélanger par cette formulation. Le "." veut dire "qui appartient à". Item.Prod veut dire: la colonne Prod de la table Item Prod.Nume veut dire: la colonne Nume de la table Prod Prod.Typ_ veut dire: la colonne Typ_ de la table Prod Ça évite de s'y perdre.
Quelle est cette colonne "Nume" ?
La colonne Nume se trouve dans chaque table et contient un identifiant unique numérique, un peu comme le numéro de dossier dans Santia ou les numéros de lignes dans une feuille Excel. Ces identifiants sont différents d'une table à l'autre. Par exemple, chaque médicament de la table Prod a son propre identifiant. C'est cet identifiant qui est copié dans la table Item des dispensations pour stocker la référence du médicament qui est délivré. On ne recopie pas toutes les informations du médicament (désignation, dosage, etc.) à chaque délivrance.
|