15. september 2004 - 14:39
Der er
20 kommentarer og 2 løsninger
Koble flere tabeller sammen med samme kriterie
Jeg vil gerne koble flere ens tabeller sammen, alle med samme kriterie og sortere dem efter et bestemt felt og vise dem Det er en access database
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
15. september 2004 - 14:46
#1
Hvad er spm? Generelt: Hvis du vil forene data fra flere tabeller som du ønsker, så skal du bruge UNION. Ex. SELECT * from TABEL1 UNION SELECT * from TABEL2 ORDER by FELTx
15. september 2004 - 14:46
#2
mener du UNION select * from Tabel1 union select * from Tabel2 order by EtFelt
15. september 2004 - 14:47
#3
et sek :(
15. september 2004 - 14:48
#4
I am no eagle, men spørgsmålet er hvad er sql-sætningen hvis der er eks. 5 tabeller med samme kriterie felt1 = 99
15. september 2004 - 14:51
#5
Skal der bruges paranteser ja nej osv.
15. september 2004 - 14:54
#6
Er det dette du tænker på??? select * from Tabel1 where felt1=99 union select * from Tabel2 where felt1=99 order by EtFelt ellers kan du vist også gøre noget i denne stil (ikke testet): select * from ( select * from Tabel1 union select * from Tabel2 ) where felt1 = 99 order by EtFelt
15. september 2004 - 14:55
#7
Svjv. afh. det af SQL dialekten, men følgende burde virke: SELECT * from TABEL1 WHERE felt1 = 99 UNION SELECT * from TABEL2 WHERE felt1 = 99 UNION SELECT * from TABEL3 WHERE felt1 = 99 UNION SELECT * from TABEL4 WHERE felt1 = 99 UNION SELECT * from TABEL5 WHERE felt1 = 99 ORDER by FELTx Du kunne også bruge SELECT * FROM ( SELECT * FROM TABEL1 UNION SELECT * FROM TABEL2 UNION SELECT * FROM TABEL3 UNION SELECT * FROM TABEL4 UNION SELECT * from TABEL5 ) WHERE felt1 = 99 ORDER by FELTx Det afh. af SQL DBMS hvordan den optimerer osv. men for små mængder data, der er ikke interessant.
15. september 2004 - 14:59
#8
Hvis I begge lægger et svar kan i dele spørgsmålene, da svarene faktisk er identiske
15. september 2004 - 15:02
#9
nej tak. jpvj var først med en løsning, som bagefter bare blev udvidet.
15. september 2004 - 15:16
#10
Ok dit valg
15. september 2004 - 16:41
#11
Jeg kan ikke få det til at virke her er den sidste kode jeg tjekkede: Dim t(12) t(1) = "P11mands" t(2) = "P7mands" t(3) = "P7mandsold" t(4) = "P7mandsvet" t(5) = "P7mandsdam" t(7) = "P7mandsmix" t(8) = "P5mands" t(9) = "P5mandsold" t(10) = "P5mandsoldsuper" t(11) = "P5mandsmix" t(12) = "P4mandsdam" Set conn = Server.CreateObject("ADODB.Connection") ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/Tilmeldt.mdb") conn.Open(ConnStr) sql = "(SELECT * FROM " & t(1) & " WHERE Pulje=99) " sql = sql & "UNION " sql = sql & "(SELECT * FROM " & t(2) & " WHERE Pulje=99) " sql = sql & "UNION " sql = sql & "(SELECT * FROM " & t(3) & " WHERE Pulje=99) " sql = sql & "UNION " sql = sql & "(SELECT * FROM " & t(4) & " WHERE Pulje=99) " sql = sql & "UNION " sql = sql & "(SELECT * FROM " & t(5) & " WHERE Pulje=99) " sql = sql & "UNION " sql = sql & "(SELECT * FROM " & t(6) & " WHERE Pulje=99) " sql = sql & "UNION " sql = sql & "(SELECT * FROM " & t(7) & " WHERE Pulje=99) " sql = sql & "UNION " sql = sql & "(SELECT * FROM " & t(8) & " WHERE Pulje=99) " sql = sql & "UNION " sql = sql & "(SELECT * FROM " & t(9) & " WHERE Pulje=99) " sql = sql & "UNION " sql = sql & "(SELECT * FROM " & t(10) & " WHERE Pulje=99) " sql = sql & "UNION " sql = sql & "(SELECT * FROM " & t(11) & " WHERE Pulje=99) " sql = sql & "UNION " sql = sql & "(SELECT * FROM " & t(12) & " WHERE Pulje=99)"
15. september 2004 - 16:42
#12
Den skriver der er en fejl i from delsætningen
16. september 2004 - 10:30
#13
prøv uden ( og ) omkring sql = "SELECT * FROM " & t(1) & " WHERE Pulje=99 " sql = sql & "UNION " sql = sql & "SELECT * FROM " & t(2) & " WHERE Pulje=99 " ... ...
16. september 2004 - 11:52
#14
det er den ligeglad med
16. september 2004 - 12:11
#15
Det ser også ud til at du har husket de mellemrum der skal være. Virker det hvis du kun bruger 2 tabeller??
16. september 2004 - 12:13
#16
prøver det lige
16. september 2004 - 12:37
#17
sql = "SELECT * FROM " & t(1) & " WHERE Pulje=99 " sql = sql & "UNION " sql = sql & "SELECT * FROM " & t(2) & " WHERE Pulje=99" Kan den godt med
16. september 2004 - 12:56
#18
Prøv at tilføje dem en efter en indtil den fejler.
16. september 2004 - 13:07
#19
Okay
16. september 2004 - 13:11
#20
det er da rart at det ikke kun er mig der er blind, der er ingen t(6), men tusind tak nu virker det
16. september 2004 - 13:12
#21
Lige en sidste ting...når der er en autonum felt i dem alle hvad bevirker dette for dette
16. september 2004 - 13:30
#22
Det kommer an på om du skal bruge id'et. Union svarer til at du laver udtrækene enkeltvis, også samler dem i en klynge bagefter. Det betyder at det er muligt at nogle ID'er gå igen.
Kurser inden for grundlæggende programmering