|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 125 ![]() |
Bonjour,
veuillez trouver en pièce jointe mon 'problème'. J'ai une table avec 2 colonnes : date et type (tableau de gauche) J'ai déja une requete qui me permet de grouper par date, et me donner le nombre de types différents pour chacune des dates (tableau du milieu). J'aimerai maintenant trouver une requete qui me permet de grouper par date, et me donner le cumul des differents types. - C'est a dire que pour le 01.01.2011, j'ai 3 types différents - Pour le 02.01.2011, j'ai 3 types différents depuis le 01.01.2011 jusqu'au 02.01.2011 - Pour le 03.01.2011, j'ai 5 types différents depuis le 01.01.2011 jusqu'a 03.01.2011. - Ainsi de suite. J'ai donc besoin de valeur unique, cumuléee.. J'espère avoir bien explicité mon problème. Merci d'avance. |
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Bonjour,
Voici : Code :
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
||
|
10
|
|
|
#3 | ||
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 125 ![]() |
Merci pour cette proposition.
Par contre, je souhaite avoir le nombre du cumul (pas les différents types cumulés). Il me faut donc la deuxième colonne dans mon exemple (dont le nombre augmenterait jour apres jours). La troisième ne servait qu'a explicité mon souhait. Pourriez-vous corriger votre code ? A défaut, je vais essayer de chipoter un peu de mon coté.. Merci d'avance. je suppose que je dois modifier ainsi: Code :
|
||
|
|
00
|
|
|
#4 | ||
|
Membre chevronné
![]() ![]() Inscription : juillet 2006 Messages : 1 194 ![]() |
Code :
|
||
|
|
00
|
|
|
#5 | ||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Voici :
Code :
Dans la requête, je force le nom de la colonne à "chaîne vide", donc je n'ai que des éléments <type>. Comme j'ai cumulé la valeur avec une virgule (+ ', '), le nœud type n'existe pas, et j'ai donc seulement les valeurs trouvées dans la colonne. C'est une petite astuce qui est la plus légère (en temps d'exécution et en consommation de ressources) lorsqu'on souhaite "cumuler" des valeurs comme ici. En revanche c'est bien sûr anti-relationnel. @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
||
|
00
|
|
|
#6 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
SergeJack, votre requête retourne un total cumulé des occurrences ...
@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
00
|
|
|
#7 | |||||
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 125 ![]() |
Citation:
J'obtiens exactement les memes résultats avec mon code ci dessous : Code :
|
|||||
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Dans ce cas j'ai du mal comprendre, et la requête de SergeJack est correcte.
Je pensais que vous parliez du champ Distinct de votre fichier Excel. Pouvez-vous donner le nom du champ de votre fichier Excel que vous souhaitez voir cumulé ? @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
00
|
|
|
#9 | ||||
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 125 ![]() |
Merci elsuket et SergeJack pour votre aide :-)
Pour clarifier, dans mon fichier excel (car je pense que le mot 'cumul' porte à confusion, désolé) - le premier tableau correspond à ma table; - le deuxième tableau correspond aux valeurs distinctes, par jour, que j'obtiens facilement avec ce code: Code :
Ainsi, j'ai besoin : - pour ma premiere date, toutes les valeurs distinctes (c_account_number) de ce jour - pour ma deuxième date, toutes les valeurs distinctes (c_account_number) entre le premier jour et celui-ci - pour ma troisième date, toutes les valeurs distinctes (c_account_number) entre le premier jour et celui-ci (le troisième jour) etc.. Pour le code de SergeJack, j'ai encore quelques difficultés à l'implémenter dans mon code.. (ca me donne des valeurs bcp trop grandes) j'essaye.. Code :
|
||||
|
|
00
|
|
|
#10 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Je me trompe ou vous devez calculer ce résultat pour le montrer dans un rapport ou quelque chose dans le style ?
Si c'est le cas, il vaudrait mieux coder cela côté applicatif ... SQL n'est pas un langage de présentation de données. @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
00
|
|
|
#11 | |||
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 125 ![]() |
Citation:
MAIS.... j'ai finalement réussi à coder ce dont j'avais besoin, comme suit: Code :
|
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com