Page 1 sur 1

Il me manque un mot clé

Posté : 19 oct. 2005, 14:14
par Maitrepylos
Bonjour,

je suis toujours sur PostgresSQL, et j'ai une table de client avec 2 champs DateEntree et DateSortie.

Ce que je vousdrais c'est savoir le nombre de client inscrit dans ma table dans un interval de temps.

Par exemple en '2005-09-08' et '2005-09-10'.

je dois prendre les clients qui se sont inscrit avant le 10 septembre et qui n'ont pas de date de sortie, et les clients qui sont éventuellement sorti entre le 8 et le 10 septembre.

J'ai fait ceci mais cela ne marche pas.

Code : Tout sélectionner

SELECT parnom,parprenom,dossortie FROM participant,dossier WHERE dosentree <= '2005-09-08'AND dossortie BETWEEN '2005-09-08' and '2005-09-10'AND participant.idparticipant=dossier.idparticipant ORDER BY dossortie ASC
Normale puisque je lui demande seul ceux qui ont une date de sortie dans le BETWEEN.

Mais je ne vois pas bien comment y arriver.

Merci de votre aide.

Posté : 19 oct. 2005, 14:25
par rami
je dois prendre les clients qui se sont inscrit avant le 10 septembre et qui n'ont pas de date de sortie, et les clients qui sont éventuellement sorti entre le 8 et le 10 septembre.
Je fais la traduction de ta phrase en SQL:

Code : Tout sélectionner

SELECT parnom,parprenom,dossortie FROM participant,dossier WHERE participant.idparticipant=dossier.idparticipant AND (dosentree <= '2005-09-08'AND dossortie IS NOT NULL) OR dossortie BETWEEN '2005-09-08' and '2005-09-10' ORDER BY dossortie ASC
(j'ai supposé que le champ dossortie était mis à NULL par défaut)

Posté : 19 oct. 2005, 15:21
par Maitrepylos
Merci, ça marche, j'ai juste modifier un NOT NULL en IS NULL, sinon il ne me prenaite que ceux qui avais une date de sortie.

Code : Tout sélectionner

AND (dosentree <= '2005-09-08'AND dossortie IS NULL)
Un grand merci

Posté : 19 oct. 2005, 15:36
par rami
Oui pardon je me suis planté!