Commande SQL pour eviter les donnes en double

raphytorres13 -  
julie-f Messages postés 68 Statut Membre -
Bonjour,

Dans ma requete SQL,jai une probleme avec des doubles qui apparaissent, certaines donnes apparaissent parfois en double ou en triple, dans ma requete ,aurait-il un moyen de ne pas autoriser les doubles pour une colonne ,

Merci dàvance

6 réponses

  1. yohledemon Messages postés 109 Statut Membre 4
     
    DISTINCT
    1
  2. Clapss Messages postés 387 Date d'inscription   Statut Membre Dernière intervention   16
     
    SELECT DISTINCT attribut
    0
  3. Clapss Messages postés 387 Date d'inscription   Statut Membre Dernière intervention   16
     
    Je n'ai pas compris ta question.
    0
    1. yohledemon Messages postés 109 Statut Membre 4
       
      moi non plus ??
      0
    2. julie-f Messages postés 68 Statut Membre 10
       
      idem, l'idéal serait un exemple de la requête et le résultat affiché...
      0
    3. raphytorres13
       
      J'en ai poster un ^^
      0
  4. raphytorres13
     
    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/
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. julie-f Messages postés 68 Statut Membre 10
     
    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
    CASE WHEN cuname is null THEN InName ELSE cuname END As CustomerName
    par
    cuname as custumerName1, InName as custumerName2


    Et tu devrais retrouver ce qui cloche.
    0
  7. raphytorres13
     
    Cependant, est-ce je peux faire un SELECT DISTINCT pour certain attribut qui égale 0 partout ,je l'écris comment?(excusez mon incompétence en SQL j'y travaille rarement)..
    -1