PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Requete SQL : LEFT OUTER JOIN
Requete SQL : LEFT OUTER JOIN
Iniciado por lionel.breil, 09,mar. 2006 07:11 - No hay respuesta
Publicado el 09,marzo 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