PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Requete SQL : LEFT OUTER JOIN
Requete SQL : LEFT OUTER JOIN
Débuté par lionel.breil, 09 mar. 2006 07:11 - Aucune réponse
Posté le 09 mars 2006 - 07:11
Bonsoir a tous,

J'ai un gros probleme avec une requete SQL.

Ma base ressemble a peu pres a cela :

Table Dossier
=> NoDossier
=> Infos_Dossier

Table Item
=> NoDossier
=> NoItem
=> Infos_Item

Table Fournisseur
=> NoFourn
=> Nom

Table Prix
=> NoDossier
=> NoFourn
=> NoItem
=> PrixItem

De cette facon, je peux avoir les prix de plusieurs fournisseurs enregistrés, et choisir le meilleur pour chaque item.

Afin de saisir les prix de chaque fournisseur, j'ai une table mémoire remplie par la requete suivante :

select Item.NoItem, Item.Infos_Item, Prix.PrixItem
from Item
left outer join Prix on Item.NoItem = Prix.NoItem and Item.NoDossier = Prix.NoDossier
where Item.NoDossier = {Param1}
and Prix.NoFourn = {Param2}

Cette requete ne marche pas.

Je l'ai donc modifiée :

select Item.NoItem, Item.Infos_Item, Prix.PrixItem
from Item
left outer join Prix on Item.NoItem = Prix.NoItem and Prix.NoDossier = {Param1}
where Item.NoDossier = {Param1}
and Prix.NoFourn = {Param2}

Cette requete marche, mais prend énormément de temps compte tenu du nombre d'enregistrements présents dans la table Item.

Quelqu'un aurait une idée sur comment faire une préselection des Items correspondants au dossier voulu avant de faire le left outer join ? (un produit cartésien sur 210k(Item) * X(Prix) enregistrements, c'est pas vraiment rapide)

Lionel