informix ne fait peut-être pas le COUNT DISTINCT ? peux-tu chercher dans ta doc Informix (si tu en as une), dans celle que je t'ai envoyée sinon ?
informix ne fait peut-être pas le COUNT DISTINCT ? peux-tu chercher dans ta doc Informix (si tu en as une), dans celle que je t'ai envoyée sinon ?
Bonjour,
J'ai passé la date de péremption mais de mémoire, je pense que j'aurais fait comme ça :
Ou encore comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 {==============================================================================} { count_note.sql } {==============================================================================} {==============================================================================} { Etudiants ayant passé au moins un test dans la période "01/01/2007" "31/12/2007" Table T_Note : | Nom | Prenom | DateNote | Note | } {------------------------------------------------------------------------------} select unique T_note.Nom, T_note.prenom from T_note WHERE T_note.DateNote BETWEEN "01/01/2007" AND "31/12/2007" group by T_note.nom, T_note.prenom into temp t0; select count(*) count from t0 into temp t1; select 'Etudiants avec au moins un test entre "01/01/2007" et "31/12/2007" :', t1.count from t1; {==============================================================================}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 {------------------------------------------------------------------------------} SELECT UNIQUE (T_note.nom || T_note.prenom) nom_prenom FROM T_note WHERE T_note.DateNote BETWEEN "01/01/2007" AND "31/12/2007" INTO temp t0; SELECT count(*) count FROM t0 into temp t1; select 'Etudiants avec au moins un test entre "01/01/2007" et "31/12/2007" :', t1.count from t1; {==============================================================================}
Dernière modification par Invité ; 05/10/2008 à 23h33.
donc, si je comprends bien :
- DISTINCT s'écrit UNIQUE
- COUNT DISTINCT n'existe pas
- du coup, tu passes par des tables temporaires, que tu crées avec INTO TEMP
C'est bien ça ?
Bonjour,
UNIQUE et DISTINCT, c'est la même chose. C'est une question d'habitude d'écriture.
Pour ajouter une réponse à la discussion, je pioche dans une sauvegarde de 17 ans d'investissement avec Informix SE. J'ai dû commencer avec "UNIQUE" à une époque où "DISTINCT" n'existait peut-être pas. Sinon, "COUNT DISTINCT", ça ne me dit rien mais je ne suis pas une référence en matière de haute technicité. Je suis toujours resté très « basic ».
Je passe effectivement par un fichier temporaire, et même deux pour pouvoir afficher un libellé explicite. Des « count », j’en ai des tonnes tous plus ou moins sophistiqués pour satisfaire des utilisateurs avides d’indicateurs. Je redirigeais les résultats d’une rafale de « count » dans un fichier « perform.out » que je pouvais commenter ensuite sous VI puis imprimer après avoir ajouté une première ligne de séquences d’échappement afin d’initialiser l’imprimante. Ensuite, soit j'imprimais, soit je convertissais en fichier "PDF" directement sur le serveur UNIX. Je récupérais le fichier "PDF" (en binaire) par FTP et je l'envoyais en pièce jointe d'un mail.
Dernière modification par Invité ; 05/10/2008 à 17h38.
IFA2377, merci pour les précisions !
Merci IFA2377
les tables temporaires c'est nouveau pour mois.
Bon Soire à tout le monde et à bientôt.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager