Problème Requête dans un DTS
Bonjour tout le monde et heureuse année 2014.
Je possède 3 tables(client,commande,lotcommande)
un client peut faire plusieurs commande.Mais une commande appartient à un client.
Une même commande peut avoir à plusieurs lots.Mais un lot sera issu d'une commande unique.
j'ai donc: client (0,n)------>(0,1) commande (0,n)-------->(0,1)lotcommande
Pour certains besoins,
j'ai developpé cette requête:
Code:
1 2 3 4 5 6 7 8
| select te.*,ce.*,le.lieu_depot
from commande ce
inner join client te
on (te.id_client=ce.id_client and te.tarif=ce.tarif)
inner join lotcommande le
on(ce.id_commande=le.id_commande and ce.region=le.region)
where te.datecreation=2013
order by datecreation asc |
Mais quand j'ai executé le DTS, les financiers me disent qu'ils ne voient pas tous les enregistrements.Après un test de la requête dans la base, j'ai bien tous les enregistrements, mais par le dts (sql server 2000, windows 2003, RAM 2Go), il ne me renvoie toujours pas la totalité des résultats et je ne vois pas où est le problème.
J'ai opté pour cette solution:
je découpe la requête en deux requêtes reliées par UNION
Code:
1 2 3 4 5 6 7 8 9 10
| select te.*,ce.*
from client te
inner join commande ce
on (te.id_client=ce.id_client and te.tarif=ce.tarif)
where te.datecreation=2013
UNION
select be.*,le.lieu_depot
from commande be
inner join lotcommande le
on(be.id_commande=le.id_commande and be.region=le.region) |
qu'en pensez vous de ce découpage, l'optimisation vous semble améliorée ou en regression par rapport à la première requête?
merci d'avance.