8791 sujets

Développement web côté serveur, CMS

Pages :
(reprise du message précédent)

Heyoan a écrit :
D'où ma demande d'un dump de tes tables puisque ça ne se devine pas...



J'ai une trentaine de table je voulais pas vous ennuyer à lire un truc trop long, j'ai rajouté 2 tables sans doute nécéssaires à la compréhension dans le post plus haut.


Mais en gros ma structure s'apparente à la tienne, j'ai une entité version de devis

j'ai une entité ligne de devis

et j'ai plusieurs entité (location,vente,commentaire etc...) qui ont comme clé étrangère la ligne de devis.


Chaque version de devis étant constitué de plusieurs lignes qui sont de différent type (location, vente, commentaires etc...)
Modifié par korxx (20 Jul 2010 - 14:33)
De simple LEFT JOIN ne répondraient pas au problème ?

Si je comprend bien ton schéma tu veux récupérer tous les devis accompagnés des champs additionnels réparties dans les autres tables s'il y a correspondance. Dans ce cas un simple LEFT JOIN doit suffire.
Je viens d'essayer ca me fait la même chose à savoir je recupère plusieurs fois les memes colonnes, ca me donne un truc du genre :


id_ligne id_produit id_produit
1 2 null
2 null 3

mais en utilisant coalesce ca fonctionne Smiley smile



SELECT DL.ID_LIGNE, ORDRE, 
COALESCE( V.ID_PRODUIT, L.ID_PRODUIT ) AS ID_PRODUIT, 
COALESCE( V.PRIX, L.PRIX ) AS PRIX, 
COALESCE( V.REMISE, L.REMISE ) AS REMISE, 
COALESCE( V.QUANTITE, L.QUANTITE ) AS QUANTITE,
COEFF, TEXTE
FROM DEVIS_LIGNE DL
LEFT JOIN DEVIS_LOCATION L ON DL.ID_LIGNE = L.ID_LIGNE
LEFT JOIN DEVIS_VENTE V ON DL.ID_LIGNE = V.ID_LIGNE
LEFT JOIN DEVIS_TEXTE T ON DL.ID_LIGNE = T.ID_LIGNE
ORDER BY ORDRE

Modifié par korxx (20 Jul 2010 - 15:15)
Pages :