Jag har ett antal tabeller i en databas. Alla har samma struktur men såklart olika data. Jag vill sammanfoga dessa till en ny tabell, en totaltabell. Helst inte för hand. Hittar inget lämpligt makro. Nån som har ett bra tips? Vill du bara sammanställa eller vill du kopiera datat till en ny tabell? Om du bara ska sammanställa kan du skapa en unionsfråga, typ: Det spelar ingen roll om jag sammanställer eller skickar till ny tabell. I en tillägggsfråga kan jag endast lägga in en tabell åt gången. Den vill inte gå med på att köra en fråga med flera tabeller som ska läggas in i en tabell. Jag kan såklart skapa 20 (antalet småtabeller) frågor och köra dom en efter en. Gör som johan föreslår. Har nu hunnit testa detta och får det inte riktigt att fungera. Select + Union fungerar. Insert + select också. Men dessa tre tillsammans vill inte samarbeta. I Access behöver du nog dela upp det i två steg. Fungerar. Tack! Jag testade lite och det verkar som att du kan skippa qryUnionAll frågan genom att skriva så här, Fungerar perfekt!Sammanfoga tabeller
//evaSv: Sammanfoga tabeller
SELECT Fält1, Fält2, Fält3 FROM tabell1
UNION ALL
SELECT Fält1, Fält2, Fält3 FROM tabell2
Ska du skapa en ny tabell borde du kunna göra en tilläggsfråga som hämtar data från unionsfrågan.
JohanSv:Sammanfoga tabeller
Sv: Sammanfoga tabeller
1. Skapa en urvals fråga för den första tabellen där du väljer de kolumner du vill ha.
SELECT Fält1, Fält2, Fält3
FROM tabell1
2. Gå in i SQL visnings läge och lägg till "UNION ALL" sist och kopiera därefter urvals fråga och byt namn på tabellen.
SELECT Fält1, Fält2, Fält3
FROM tabell1
UNION ALL
SELECT Fält1, Fält2, Fält3
FROM tabell2
UNION ALL
SELECT Fält1, Fält2, Fält3
FROM tabell3
UNION ALL
SELECT Fält1, Fält2, Fält3
FROM tabellN
3. Du kan nu köra frågan och kontrollera att datat visas.
4. För att infoga data i en befintlig tabell lägger du först till "INSERT INTO tabellAlla (Fält1, Fält2, Fält3)"
INSERT INTO tabellAlla (Fält1, Fält2, Fält3)
SELECT Fält1, Fält2, Fält3
FROM tabell1
UNION ALL
SELECT Fält1, Fält2, Fält3
FROM tabell2
UNION ALL
SELECT Fält1, Fält2, Fält3
FROM tabell3
UNION ALL
SELECT Fält1, Fält2, Fält3
FROM tabellN
Borde gå. ;-)
Sv:Sammanfoga tabeller
Vad är det för fel på denna kod? Får felmeddelande Syntaxfel i FROM-instruktion.
INSERT INTO tblEnkät2010LVU (EnkätId, InstId, Ärendenr, dat, befattning)
SELECT EnkätId, InstId, Ärendenr, dat, befattning
FROM tblEnkät2010LVU204
UNION ALL
SELECT EnkätId, InstId, Ärendenr, dat, befattning
FROM tblEnkät2010LVU221;
Tycker också att det borde gå ;-)Sv: Sammanfoga tabeller
Skapa först en UNIONS fråga för att hämta all info, här döpt till "qryUnionAll"
<code>
SELECT EnkätId, InstId, Ärendenr, dat, befattning
FROM tblEnkät2010LVU204
UNION ALL
SELECT EnkätId, InstId, Ärendenr, dat, befattning
FROM tblEnkät2010LVU221;
</code>
Sen skapar du en INSERT INTO fråga med qryUnionAll som källa
<code>
INSERT INTO tblEnkät2010LVU ( EnkätId, InstId, Ärendenr, dat, befattning )
SELECT qryUnionAll.EnkätId, qryUnionAll.InstId, qryUnionAll.Ärendenr, qryUnionAll.dat, qryUnionAll.befattning
FROM qryUnionAll;
</code>Sv:Sammanfoga tabeller
Jag fick göra tre frågor, Delete, Select och Insert.
Enda problemet nu är att Selectfrågan visar resultatet. Jag skrev acHidden men då visades koden istället.
Nån som har nån lösning?
/evaSv: Sammanfoga tabeller
<code>
INSERT INTO tblEnkät2010LVU ( EnkätId, InstId, Ärendenr, dat, befattning )
SELECT d.EnkätId, d.InstId, d.Ärendenr, d.dat, d.befattning
FROM (SELECT EnkätId, InstId, Ärendenr, dat, befattning
FROM tblEnkät2010LVU204
UNION ALL
SELECT EnkätId, InstId, Ärendenr, dat, befattning
FROM tblEnkät2010LVU221) AS d;
</code>Sv:Sammanfoga tabeller
Löste också mitt andra problem. Allt sker transparent för användaren.
Tack!
/eva