Så er jeg med igen. Nej, den sql version der bruges i Access har et antal begrænsninger i forhold til gængse sql versioner. For at lave en full outer join i access skal man lave en left outer join og en right outer join og unione dem, og fordi de to tabeller (som jeg forstår det) ikke har samme felter (en tabel har antalNew og den anden antalOpen) skal man starte med en inner join for at få de nødvendige felter i den resulterende tabel. Da det er længe siden jeg har været igang med Access googlede jeg lidt og fandt blandt andet denne forklaring:
http://www.databasejournal.com/features/msaccess/article.php/3516561/Implementing-the-Equivalent-of-a-FULL-OUTER-JOIN-in-Microsoft-Access.htmJeg lavede (i mysql) to tabeller og fyldte nogle værdier i dem som vist nedenfor. Så kørte jeg denne query og fik det resultat jeg forventede.
SELECT dato, antalNew, antalOpen FROM stof1 a LEFT JOIN stof2 b ON a.dato = b.dato ORDER BY dato;
SELECT a.dato, antalNew, antalOpen FROM stof1 a INNER JOIN stof2 b ON a.dato = b.dato
UNION
SELECT a.dato, antalNew, antalOpen FROM stof1 a LEFT OUTER JOIN stof2 b ON a.dato=b.dato
UNION
SELECT b.dato, antalNew, antalOpen FROM stof1 a RIGHT OUTER JOIN stof2 b ON a.dato=b.dato
ORDER BY dato
Her er resultatet:
dato antalNew antalOpen
2011-10-01 5 NULL
2011-10-02 NULL 12
2011-10-03 7 21
2011-10-04 NULL 33
2011-10-05 NULL 8
2011-10-06 NULL 2
2011-10-07 1 5
2011-10-11 3 NULL
2011-10-12 14 NULL
2011-10-14 11 NULL
Og her er tabellerne med data:
CREATE TABLE stof1(dato DATE, antalNew INT);
INSERT INTO stof1 VALUES('2011-10-01', 5);
INSERT INTO stof1 VALUES('2011-10-03', 7);
INSERT INTO stof1 VALUES('2011-10-07', 1);
INSERT INTO stof1 VALUES('2011-10-11', 3);
INSERT INTO stof1 VALUES('2011-10-12', 14);
INSERT INTO stof1 VALUES('2011-10-14', 11);
CREATE TABLE stof2(dato DATE, antalOpen INT);
INSERT INTO stof2 VALUES('2011-10-02', 12);
INSERT INTO stof2 VALUES('2011-10-03', 21);
INSERT INTO stof2 VALUES('2011-10-04', 33);
INSERT INTO stof2 VALUES('2011-10-05', 8);
INSERT INTO stof2 VALUES('2011-10-06', 2);
INSERT INTO stof2 VALUES('2011-10-07', 5);
MEN: Det lyder overraskende, at du har to tabeller med tilsyneladende temmelig ens indhold. Er du sikker på du har den rigtige tabel struktur? Ellers kunne du jo (i et frisk spørgsmål) forelægge problemstillingen og bede om kommentar til din tabelstruktur.