Każdy, kto napisał w Accessie 97:
SELECT *
FROM (SELECT
Pole1 FROM Tabela1)
wie, że w Accessie nie można budować kwerend zagnieżdżonych, bo jedyne,
co uzyskamy z tej kwerendy, to komunikat o błędzie. Tymczasem... okazuje
się, że można!!!
Kto by na to wpadł (no, chyba tylko Krzysztof Naworyta,
patrz archiwum), że wystarczy zamienić nawiasy okrągłe na kwadratowe
z kropką i już wszystko gra. Czyli
prawidłowo nasza kwerenda powinna wyglądać tak:
SELECT
* FROM
[SELECT
Pole1 FROM
Tabela1]. As Q1
...i otrzymujemy łatwy sposób na
budowanie kwerend zagnieżdżonych.
Niestety w Accessie 97 nie można wewnątrz tworzyć nowych zagnieżdżeń ani używać nawiasów kwadratowych. No... ale za to w Accessie 2000 (i wyższych wersjach) wydaje się, że nie mamy już żadnych ograniczeń.
a W Accessie 2000 działa nawet
taka kwerenda, która w poprzedniej wersji nie miała szans, bo zawiera
wewnątrz [Pole 1] w nawiasach kwadratowych:
SELECT * FROM [SELECT Pole1 as [Pole 1] FROM Tabela1]. AS T1;
Uwaga, jest mały cyrk: Aby zapisać tę kwerendę, należy wewnętrzny select umieścić w nawiasach okrągłych, inaczej Access zgłosi błąd. Access
sam musi sobie przerobić nawiasy () na []. Czyli my zapisujemy tę kwerendę w
następującej postaci:
SELECT * FROM (SELECT Pole1 as [Pole 1] FROM Tabela1) AS T1;
a W Accessie 2000 bez problemów możemy budować kwerendy wielokrotnie zagnieżdżone, np:
SELECT * FROM [SELECT * FROM (SELECT * FROM (SELECT Pole1 as [Pole 1] FROM Tabela1) AS A) AS B]. AS C;Jest tu jasna zasada i łatwo ją zauważyć. Widać, że tylko pierwsze zagnieżdżenie musi być w nawiasach kwadratowych z kropka, a dalsze zagnieżdżenia już są budowane za pomocą zwykłych nawiasów, tak jak w standardzie SQL.
Krzysztof Pozorek