OVH Cloud OVH Cloud

requêtte compliquée !!!!!

3 réponses
Avatar
bouga
j'ai une requette sous forme de jointure entre plusieurs
tables
et il me retourne deux lignes avec une seule difference
dans une colone seulement .
-- SELECT distinct *
-- FROM entreprises,cpi,type_paiement,cpi_virement
-- ,virement
-- WHERE virement.Valide like 'non%'
-- and cpi_virement.n_virement = virement.n_virement
-- and type_paiement.Code_Paiement=virement.Code_Paiement
-- and cpi_virement.code_cpi = cpi.code_cpi
-- and cpi.code_etse = entreprises.code_prospect

je ne veut pas changer aucune ligne de cette requette,
mais je veut qu'elle me retourne une seul ligne, sachant
que la colone qui me cause ce probleme de deux ligne est
la colone "Code_Cpi" dans la table "Cpi_Virement"

merci

3 réponses

Avatar
Fred BROUARD
Ou, mais laquelle des deux valeur de Code_cpi veut tu garder ???

Une syntaxe plus correcte serait de faire des jointures.
C'est aussi plus performant :

SELECT distinct *
FROM entreprises E
INNER JOIN cpi C
ON C.code_etse = E.code_prospect
INNER JOIN cpi_virement CV
ON CV.code_cpi = C.code_cpi
INNER JOIN virement V
ON CV.n_virement = V.n_virement
INNER JOIN type_paiement TP
ON TP.Code_Paiement = V.Code_Paiement
WHERE V.Valide like 'non%'


A +

bouga a écrit:
j'ai une requette sous forme de jointure entre plusieurs
tables
et il me retourne deux lignes avec une seule difference
dans une colone seulement .
-- SELECT distinct *
-- FROM entreprises,cpi,type_paiement,cpi_virement
-- ,virement
-- WHERE virement.Valide like 'non%'
-- and cpi_virement.n_virement = virement.n_virement
-- and type_paiement.Code_Paiement=virement.Code_Paiement
-- and cpi_virement.code_cpi = cpi.code_cpi
-- and cpi.code_etse = entreprises.code_prospect

je ne veut pas changer aucune ligne de cette requette,
mais je veut qu'elle me retourne une seul ligne, sachant
que la colone qui me cause ce probleme de deux ligne est
la colone "Code_Cpi" dans la table "Cpi_Virement"

merci




--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************
Avatar
bouga
>-----Message d'origine-----
Ou, mais laquelle des deux valeur de Code_cpi veut tu


garder ???

Une syntaxe plus correcte serait de faire des jointures.
C'est aussi plus performant :

SELECT distinct *
FROM entreprises E
INNER JOIN cpi C
ON C.code_etse = E.code_prospect
INNER JOIN cpi_virement CV
ON CV.code_cpi = C.code_cpi
INNER JOIN virement V
ON CV.n_virement = V.n_virement
INNER JOIN type_paiement TP
ON TP.Code_Paiement =


V.Code_Paiement
WHERE V.Valide like 'non%'





merci pour votre aide
j'ai un petit pb., c que le resultat est tjs le meme sauf
si je n'affiche que les tables "virement, type_paiement et
entreprises

mais comme meme, je vous remercie
Avatar
Jean Philippe Dollé
Autre solution remplacer le select distinct * par toutes tes valeurs sauf la
colonne qui pose probleme
pour obtenir une seule ligne en résultat
a mediter

"bouga" a écrit dans le message de news:
06de01c363dd$176d7f00$
j'ai une requette sous forme de jointure entre plusieurs
tables
et il me retourne deux lignes avec une seule difference
dans une colone seulement .
-- SELECT distinct *
-- FROM entreprises,cpi,type_paiement,cpi_virement
-- ,virement
-- WHERE virement.Valide like 'non%'
-- and cpi_virement.n_virement = virement.n_virement
-- and type_paiement.Code_Paiement=virement.Code_Paiement
-- and cpi_virement.code_cpi = cpi.code_cpi
-- and cpi.code_etse = entreprises.code_prospect

je ne veut pas changer aucune ligne de cette requette,
mais je veut qu'elle me retourne une seul ligne, sachant
que la colone qui me cause ce probleme de deux ligne est
la colone "Code_Cpi" dans la table "Cpi_Virement"

merci