Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
Bonjour,
Dans ma datawindow, je reçois une liste de rows.
Pour chaque row, j'ai une colonne "date_passage" qui est du type datetime.
Je souhaite regrouper mes rows selon la "date_passage", en ne prenant en compte que la partie date et pas la partie time.
Voici mon jeu de données :
DAT_PASSAGE A B C 23/11/07 17:25:43 1 105 MTT 23/11/07 17:25:49 1 103 MTT 23/11/07 17:25:49 2 223 MTT 23/11/07 17:25:51 1 105 MTT 23/11/07 17:25:56 2 213 MTT ... 10/02/08 10:11:12 1 132 MTT 10/04/08 10:11:12 1 132 MTT ... 21/06/08 03:00:00 1 132 MTT 21/06/08 10:11:12 1 132 MTT ... 29/06/08 03:00:00 1 132 MTT 29/06/08 10:11:12 1 132 MTT ... 16/07/08 03:00:00 1 132 MTT 16/07/08 19:03:05 1 132 MTT ...
Voici comment est déclarée ma colonne :
Et voici comment est construite ma datawindow :
Mon problème c'est que mes données ne sont pas regroupées correctement. J'ai 1 ligne affichée par row reçu de la base de données. En somme mes lignes semblent regroupées par "date_passage" et non pas par "date(dat_passage)"...
Or, comme vous pouvez le constater, j'ai bien des dates de passages qui ont lieu le même jour, mais à des heures différentes. C'est pourquoi j'essaie de regrouper sur la date uniquement, en mettant de coté les heures.
Si vous avez un conseil, je suis preneur !
Dernière modification par Nyphel (29-09-2008 08:38:11)
Hors ligne
Bonjour Nyphel,
Dans ton Group Sort tu devrais mettre date(dat_passage) au lieu de ton count(date(dat_passage) fro group 1)
Hors ligne
ajoute un champ date invisible qui ne prend que la partie date
Hors ligne
Ma foi... Ca fonctionne parfaitement !
Je pensais qu'ils s'agissait juste d'un tri et j'avais laissé ce que Pb m'avait proposé par défaut.
Je vais me renseigner sur ce Group Sort, merci beaucoup Nico
Hors ligne
De rien
Hors ligne
Ah bha en fait... Ca en regroupe bien quelques uns, mais pas tous
Je ne comprends rien !
Hors ligne
Bonjour,
Tu m'as mis un doute j'ai fait l'essai sur une de mes tables je ne rencontre pas de problèmes. A part ton critère de tri qui est peu pertinent, il est inutile de trier un groupe sur la données de regroupement forcément identique pour chaque ligne.
Quelle est ta version de PB ?
En fait je procède rarement de cette façon, je ne met jamais de formule sur la définition du groupe. Tu peux essayer de contourner le problème de la façon suivante :
Tu crées une "computed column" de la façon suivante sur la requête SQL de ta datawindow :
SELECT dat_passage, ..., date(dat_passage) as critregroup FROM ...
(note : date = cette fonction SQL est peut être différente sur ta base, à adapter à ta situation)
Tu définis le critère de regroupement pour ton group 1 de datawindow sur la colonne : critregroup
Hors ligne
Je suis en Pb 10.5 et c'est une bonne idée : je teste ca dès lundi
Hors ligne
Essaie un Sort sur ta colonne dat_passage et recréer ton group par date(dat_passage) (pas un group by SQL)
J'ai testé chez moi et ça marche bien.
Logiquement tes données seront bien classées par dat_passage et groupées par date(dat_passage)
DAT_PASSAGE A B C 23/11/07 17:25:43 1 105 MTT 23/11/07 17:25:49 1 103 MTT 23/11/07 17:25:49 2 223 MTT 23/11/07 17:25:51 1 105 MTT 23/11/07 17:25:56 2 213 MTT ... 10/02/08 10:11:12 1 132 MTT ... 10/04/08 10:11:12 1 132 MTT ... 21/06/08 03:00:00 1 132 MTT 21/06/08 10:11:12 1 132 MTT ... 29/06/08 03:00:00 1 132 MTT 29/06/08 10:11:12 1 132 MTT ... 16/07/08 03:00:00 1 132 MTT 16/07/08 19:03:05 1 132 MTT ...
.
Hors ligne
Cette fois-ci c'est la bonne !
J'ai donc agit selon vos conseils, et voilà le résultat :
- sous Oracle, ma date est maintenant tronquée avec trunc(), pour n'obtenir que les jours/mois/années
- sous Oracle, j'ai un group by (dat_passage), le tout trié selon (dat_passage)
- sous Pb, j'ai un groupe selon "date(dat_passage)", sans tri
J'ai conservé le group by sous Oracle, car ce n'est pas moi qui intervient sur la procédure. J'ai donc voulu faire un test avant de demander à retirer le group by, et ça a fonctionné ;)
Je vous remercie pour votre aide, je ne savais pas que l'ordre avait une influence sur le regroupement !
Dernière modification par Nyphel (29-09-2008 09:45:46)
Hors ligne
Pages: 1