|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() Inscription : février 2008 Messages : 131 ![]() |
Bonjour à tous,
Je travaille avec des fichiers hyperfiles J'ai un fichier avec 3 rubriques (Date,Type,Quantité) Je veux faire une requête qui me donnera pour chaque date : *la quantité totale *la quantité totale pour type = 1 *la quantité totale pour type = 2 *la quantité totale pour type = 3 Code :
SELECT DISTINCT(Date),SUM(Quantité),SUM(IF(Type=1,Quantité,0) etc... Peut être une erreur de syntaxe. Comment procédez-vous pour faire ce type de requête ? Je vous remercie d'avance |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Sylvain Développeur Windev et technicien maintenance Inscription : janvier 2008 Messages : 1 221 ![]() |
Bonjour,
J'utiliserai la syntaxe avec group by Un truc du genre. Code :
__________________
la touche est ton amie. l'aide ne mord pas quand on la consulte...PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. Un exemple vaut mieux que de longs discours... Pensez à utiliser les votes, merci |
||
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Responsable de service informatique Inscription : janvier 2009 Messages : 1 081 ![]() |
Bonjour,
La requête de base me parait correcte, mais sans le distinct qui ne sert ici à rien, et risque surtout de fausser les résultats. Tatayo. |
|
|
00
|
|
|
#4 | ||
![]() ![]() Nicolas LAURETChef de projet en SSII Inscription : novembre 2003 Messages : 1 024 ![]() |
Bonjour,
en se basant sur la requête de mail.spam, on peut même obtenir les quantités totale par jour en optant pour un type fictif de regroupement avec un union, ex : Code :
__________________
Modérateur Business Intelligence / Windev A lire avant de poster Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
|
||
|
|
00
|
|
|
#5 |
|
Membre actif
![]() Inscription : février 2008 Messages : 131 ![]() |
Merci Mail.Spam pour cette réponse, cependant cela ne résout pas mon problème, j'ai vraiment besoin d'avoir 1 colonne pour chaque type.
@tatayo : Pourquoi mon DISTINCT servirait -il à rien ? La requête n'est pourtant pas comprise par Windev Merci à vous deux EDIT : Je sais que c'est plutôt un problème de langage SQL, cependant ça à l'air de fonctionner pour d'autres SGBD d'après quelques recherches mais pas en Hyperfile |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Sylvain Développeur Windev et technicien maintenance Inscription : janvier 2008 Messages : 1 221 ![]() |
Désolé mais tu n'en a rien dis. Donc je ne pouvais pas le savoir.
Ce que tu veux c'est un ligne par dates différentes avec une colonne total et une colonne par type. En gros tu veux faire "un tableaux croisé dynamique sous excel" ? C'est bien ça?
__________________
la touche est ton amie. l'aide ne mord pas quand on la consulte...PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. Un exemple vaut mieux que de longs discours... Pensez à utiliser les votes, merci |
|
|
00
|
|
|
#7 | |||
|
En attente de confirmation mail
Inscription : février 2005 Messages : 1 731 ![]() |
Bonjour,
Citation:
Mauvaise idée car ce sera la cause de soucis, surtout en "SQL pur". Trouve un nom plus spécifique. Je ne crois pas qu'il existe une instruction SQL IF pour HyperFile. En revanche, l'instruction CASE ... WHEN ... THEN ... ELSE ... END semble adaptée à ton besoin. http://doc.pcsoft.fr/fr-FR/?2034005&...iteur#NOTE2_45 Comme mail.spam, je te conseille un regroupement sur le champ Date. Code SQL :
A tester. _ |
|||
|
|
00
|
|
|
#8 | ||
|
Membre émérite
![]() Inscription : mars 2002 Messages : 825 ![]() |
C'est un DECODE qu'il faut utiliser dans ce cas.
Code :
Le distinct est totalement inutile dans une requête comprenant un GROUP BY. Et comme tout ce qui est inutile dans HF, évite de l'utiliser, ça t'évitera des surprises. |
||
|
|
00
|
|
|
#9 |
|
Membre actif
![]() Inscription : février 2008 Messages : 131 ![]() |
Merci à vous tous, je ne pensé pas avoir autant de réponse en si peu de temps.
La solution de JBO fonctionne à merveille. Non je n'ai pas nommé ma rubrique Date, c'était juste pour que ça soit plus clair à comprendre. Je m'en vais testé celle de Bowen, histoire d'en savoir un peu plus. Merci pour tous vos conseils |
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Responsable de service informatique Inscription : janvier 2009 Messages : 1 081 ![]() |
|
|
|
00
|
|
|
#11 | |
|
Membre Expert
![]() Sylvain Développeur Windev et technicien maintenance Inscription : janvier 2008 Messages : 1 221 ![]() |
Bonjour BOWEN,
Je ne connaissais pas la fonction decode ( une nouvelle chose d'apprise pour moi, merci). ATTENTION Petit bemol l'aide de windev indique Citation:
Enfin d'après ce que j'ai lu car je n'ai aucun retour d'expérience dessus.
__________________
la touche est ton amie. l'aide ne mord pas quand on la consulte...PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. Un exemple vaut mieux que de longs discours... Pensez à utiliser les votes, merci |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com