Commande SQL pour eviter les donnes en double
Fermé
raphytorres13
-
4 juil. 2012 à 16:38
julie-f Messages postés 63 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 31 août 2012 - 4 juil. 2012 à 17:28
julie-f Messages postés 63 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 31 août 2012 - 4 juil. 2012 à 17:28
A voir également:
- Commande SQL pour eviter les donnes en double
- Double ecran - Guide
- Invite de commande - Guide
- Whatsapp double sim - Guide
- Éviter pub youtube - Accueil - Streaming
- Commande terminal mac - Guide
6 réponses
yohledemon
Messages postés
105
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
6 juillet 2012
4
4 juil. 2012 à 16:39
4 juil. 2012 à 16:39
DISTINCT
Clapss
Messages postés
389
Date d'inscription
samedi 31 décembre 2011
Statut
Membre
Dernière intervention
14 décembre 2023
16
4 juil. 2012 à 16:40
4 juil. 2012 à 16:40
SELECT DISTINCT attribut
Clapss
Messages postés
389
Date d'inscription
samedi 31 décembre 2011
Statut
Membre
Dernière intervention
14 décembre 2023
16
4 juil. 2012 à 16:45
4 juil. 2012 à 16:45
Je n'ai pas compris ta question.
yohledemon
Messages postés
105
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
6 juillet 2012
4
4 juil. 2012 à 16:49
4 juil. 2012 à 16:49
moi non plus ??
julie-f
Messages postés
63
Date d'inscription
mardi 3 juillet 2012
Statut
Membre
Dernière intervention
31 août 2012
10
4 juil. 2012 à 16:54
4 juil. 2012 à 16:54
idem, l'idéal serait un exemple de la requête et le résultat affiché...
DECLARE @REPORTDATE AS DATETIME; DECLARE @YEAR1 AS DATETIME; DECLARE @YEAR2 AS DATETIME; DECLARE @YEAR3 AS DATETIME; DECLARE @YEAR4 AS DATETIME; DECLARE @YEAR5 AS DATETIME; SET @REPORTDATE = '2012-07-04'; SET @YEAR1 = DATEADD(YY,-5,@REPORTDATE); SET @YEAR2 = DATEADD(YY,-4,@REPORTDATE); SET @YEAR3 = DATEADD(YY,-3,@REPORTDATE); SET @YEAR4 = DATEADD(YY,-2,@REPORTDATE); SET @YEAR5 = DATEADD(YY,-1,@REPORTDATE); SELECT CASE when cuprojectnumber is null then '' else cuprojectnumber end as ProjectNumber, incustomersuppliernumber as CustomerNumber, CASE WHEN cuname is null THEN InName ELSE cuname END As CustomerName, SUM(CASE WHEN INDATE >= @YEAR1 and INDATE < @YEAR2 THEN InInvoiceSubTotal ELSE 0 END) as AmountYear1, SUM(CASE WHEN INDATE >= @YEAR2 and INDATE < @YEAR3 THEN InInvoiceSubTotal ELSE 0 END) as AmountYear2, SUM(CASE WHEN INDATE >= @YEAR3 and INDATE < @YEAR4 THEN InInvoiceSubTotal ELSE 0 END) as AmountYear3, SUM(CASE WHEN INDATE >= @YEAR4 and INDATE < @YEAR5 THEN InInvoiceSubTotal ELSE 0 END) as AmountYear4, SUM(CASE WHEN INDATE >= @YEAR5 and INDATE <= @REPORTDATE THEN InInvoiceSubTotal ELSE 0 END) as AmountYear5 FROM FACTURATION_ACOMBA_ENTETES left join clients_acomba on FACTURATION_ACOMBA_ENTETES.incustomersuppliernumber = clients_acomba.cunumber WHERE ININVOICETYPE=1 AND INDATE >= @YEAR1 AND INDATE <= @REPORTDATE group by cuprojectnumber,incustomersuppliernumber,cuname,InName
Résultat :
http://imageshack.us/f/411/rsultatcentrem.png/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
julie-f
Messages postés
63
Date d'inscription
mardi 3 juillet 2012
Statut
Membre
Dernière intervention
31 août 2012
10
4 juil. 2012 à 17:28
4 juil. 2012 à 17:28
Ton group by étant sur 4 colonne, tu devrais en afficher 4 afin de voir d'ou sort cette répétition. Tu as probablement des lignes avec cuprojectnumber,incustomersuppliernumber,cuname identique mais la colonne InName différente.
Essaye de remplacer ta ligne
Et tu devrais retrouver ce qui cloche.
Essaye de remplacer ta ligne
CASE WHEN cuname is null THEN InName ELSE cuname END As CustomerNamepar
cuname as custumerName1, InName as custumerName2
Et tu devrais retrouver ce qui cloche.