Avatar billede graspman Nybegynder
12. december 2002 - 18:59 Der er 4 kommentarer og
1 løsning

Sql query i 3 tabeller

Er der nogen der kan hjælpe mig med dette:

Jeg har 3 tabeller med de samme attributter hhv. ordrenr, bestiltantal, varenr;
tabeller: ordrevaretabel_1, ordrevaretabel_2, ordrevaretabel_3.

Jeg vil gerne have mulighed for at søge i tabellerne, og finde mit ordrenr.
Jeg har lavet følgende, men den vil kun vise ordreen i den første tabel. Hvis ordren er i en anden tabel, kommer den ikke frem....

procedure TForm1.Button8Click(Sender: TObject);
begin
dm.query1.databasename:='pressalit';
dm.query1.sql.clear;
dm.query1.sql.Add('SELECT ordrevaretabel_1.Ordrenr, ordrevaretabel_1.varenr, ordrevaretabel_1.BestiltAntal, ordrevaretabel_2.Ordrenr, ordrevaretabel_2.varenr, ordrevaretabel_2.BestiltAntal, ordrevaretabel_3.Ordrenr, ordrevaretabel_3.varenr, ordrevaretabel_3.BestiltAntal');
dm.query1.sql.add('FROM ordrevaretabel_1, OrdreVaretabel_2, OrdreVaretabel_3');
dm.query1.sql.add('WHERE ordrenr=:param1');
dm.query1.params[0].asstring:=edit6.text;
dm.query1.open;
end;

hilsen Graspman
Avatar billede stoney Nybegynder
12. december 2002 - 19:10 #1
prøv at søge på inner join i localsql.hlp
Der er masser af eksempler.

Stoney
Avatar billede graspman Nybegynder
12. december 2002 - 19:36 #2
Dette er desværre ikke nok.
Jeg ville være meget glad om der er nogen der kan vise mig syntaksen eller koden ud fra ovenstående.

takker
Avatar billede kayb Nybegynder
14. december 2002 - 19:09 #3
Det er også en helt forkert måde at sætte sin database op på, hvis
den er lavet rigtig er det ikke noget problem at lave den forspørgsel du gerne
vil lave. Men hvis du vil have et et Eksempel kommer det her:
SELECT ordrevaretabel_1.*,ordrevaretabel_2.*,ordrevaretabel_3.* FROM
ordrevaretabel_1,ordrevaretabel_2,ordrevaretabel_3 WHERE  (OrdreNr = :Param1 OR
Ordrenr1 = :Param1 OR Ordernr2 = :Param1)
Grunden til dette er at hvis du har 3 tabeller med samme felter er at felterne ikke kan hedde det samme. Altså hvis du har felt ID i alle 3 så bliver der sat til ID1 i tabel 2 da felter ikke må hedde det samme i en forespørgsel.
Håber det hjalp..
Avatar billede hatecaps Nybegynder
22. december 2002 - 20:50 #4
hmm, mon ikke

procedure TForm1.Button8Click(Sender: TObject);
begin
dm.query1.databasename:='pressalit';
dm.query1.sql.clear;
dm.query1.sql.Add('SELECT ordrevaretabel_1.Ordrenr, ordrevaretabel_1.varenr, ordrevaretabel_1.BestiltAntal, ordrevaretabel_2.Ordrenr, ordrevaretabel_2.varenr, ordrevaretabel_2.BestiltAntal, ordrevaretabel_3.Ordrenr, ordrevaretabel_3.varenr, ordrevaretabel_3.BestiltAntal');
dm.query1.sql.add('FROM ordrevaretabel_1, OrdreVaretabel_2, OrdreVaretabel_3');
dm.query1.sql.add('WHERE ordrevaretabel_1.ordrenr=:param1' OR ordrevaretabel_2.ordrenr=:param1' OR ordrevaretabel_3.ordrenr=:param1');
dm.query1.params[0].asstring:=edit6.text;
dm.query1.open;
end;

skulle virke ? ;-)

ha' det godt
hatecaps
Avatar billede graspman Nybegynder
20. januar 2011 - 13:54 #5
lukkes
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester