Problème de doublon sur une requete

flandeurs76 Messages postés 1 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 10 avril 2008 - 10 avril 2008 à 09:56
Supra3000 Messages postés 159 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 8 janvier 2010 - 11 avril 2008 à 15:54
Bonjour a tous.

Je développe actuellement un progiciel en PHP de facturation VOIP.
J'ai un gros soucis au niveau de l'affichage de ma requète.En effet, des doublons apparaisse.
J'ai 2 tables une qui se nomme CDR et l'autre tarrif.

Table Tarrif
|Champ |Type | | | | | | |----
, <label for= "checkbox_row_1">ID</label> |int(120), , , , , , , , , , , , , ----
, <label for="checkbox_row_2">CODE</label> |varchar(11), , , , , , , , , , , , , ----
, <label for ="checkbox_row_3">PAYS</label> |varchar(255), , , , , , , , , , , , , ----
, <label for= "checkbox_row_4">TARIF</label> |varchar(255), , , , , , , , , , , , , ----
, <label for="checkbox_row_5">TARIF_CHA</label> |varchar(255), <dfn title ="suédois, insensible à la casse"></dfn>

Table CDR

<label for= "checkbox_row_1">calldate</label> |datetime, , , , , , , , , , , , , ----
, <label for="checkbox_row_2">clid</label> |varchar(80), , , , , , , , , , , , , ----
, <label for ="checkbox_row_3">src</label> |varchar(80), , , , , , , , , , , , , ----
, <label for= "checkbox_row_4">dst</label> |varchar(80), , , , , , , , , , , , , ----
, <label for="checkbox_row_5">dcontext</label> |varchar(80), , , , , , , , , , , , , ----
, <label for ="checkbox_row_6">channel</label> |varchar(80), , , , , , , , , , , , , ----
, <label for= "checkbox_row_7">dstchannel</label> |varchar(80), , , , , , , , , , , , , ----
, <label for="checkbox_row_8">lastapp</label> |varchar(80), , , , , , , , , , , , , ----
, <label for ="checkbox_row_9">lastdata</label> |varchar(80), , , , , , , , , , , , , ----
, <label for= "checkbox_row_10">duration</label> |int(11), , , , , , , , , , , , , ----
, <label for="checkbox_row_11">billsec</label> |int(11), , , , , , , , , , , , , ----
, <label for ="checkbox_row_12">disposition</label> |varchar(45), , , , , , , , , , , , , ----
, <label for= "checkbox_row_13">amaflags</label> |int(11), , , , , , , , , , , , , ----
, <label for="checkbox_row_14">accountcode</label> |varchar(20), , , , , , , , , , , , , ----
, <label for ="checkbox_row_15">uniqueid</label> |varchar(32), , , , , , , , , , , , , ----
, <label for="checkbox_row_16">userfield</label> |varchar(255)

Voici ma requete :
SELECT    c.uniqueid,
        c.src,
        c.dst,
        t.pays,
        c.billsec,
        t.tarif,
        t.code,
        t.ID,
        (c.billsec*t.tarif) as cout_communication
FROM        cdr as c, tarif as t
WHERE        CHAR_LENGTH(c.dst) >= 4
AND        c.billsec != 0
AND        (
            (
                CHAR_LENGTH(c.dst) = 11
        AND        SUBSTRING(dst, 1, CHAR_LENGTH(t.code)) = t.code
            )
    XOR
            (
                CHAR_LENGTH(c.dst) != 11
        AND        SUBSTRING(SUBSTRING(c.dst, 1), 1, CHAR_LENGTH(t.code)) = t.code
            )
        )

Le probleme vient au résultat

ID, SOURCE, DESTINATION, TEMPS, CODE, PAYS, ----
9128583021480183248012834, 00235862021, 00035568498234558, 10, 000355, Albania, ----
12345678899000987654, 00235862021, 0003554849858, 20, 000355, Albania, ----
9128583021480183248012834, 00235862021, 00035568498234558, 10, 00035568, Albania-Mobile, ----
12345678899000987654, 00235862021, 0003554849858, 20, 0003554, Albania-Tirana
pour un numéro il me trouve plusieurs destination.

pouvez-vous m'aider??

Merci beaucoup.

1 réponse

Supra3000 Messages postés 159 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 8 janvier 2010 2
11 avril 2008 à 15:54
il n'y a pas de doublon dans tes résultats en fonctions de ta clause Where . Par exemple il y a 2 enregistrement pour le ID 9128583021480183248012834 , il ne contient pas le meme code et nom du pays.


Donc ce sont 2 enregistrements distincts..
0