/ / Ms access 2010 dwa zapytania SQL w klauzuli FROM z INNER JOIN - sql, ms-access, join, internal-join

Ms access 2010 dwa zapytania SQL w klauzuli FROM z INNER JOIN - sql, ms-access, join, inner-join

Mam to żądanie SQL, które powinno połączyć wyniki dwóch podkwerend z INNER JOIN, ale pojawia się błąd i nie wiem dlaczego. Czy możesz mi pomóc, proszę?

SELECT
dateT, PC.id_serie
FROM (
SELECT id_serie, MIN(dateF) as dateF FROM fixings GROUP BY id_serie
) AS PC1
INNER JOIN
(
SELECT target_calendar.dateT, series.id_serie FROM target_calendar, series  LEFT JOIN fixings ON (PC.DateT=fixings.dateF) AND (PC.id_serie = fixings.id_serie)
) AS PC
ON
PC1.dateF = PC.dateT
AND
(((pc1.[dateF]) Is Null))
AND
DateT <= Date();

Błąd: odwołanie cykliczne spowodowane przez alias „DateF”

Odpowiedzi:

1 dla odpowiedzi № 1

W rzeczywistości odpowiedzią było dodanie więcej „(” i nie wstawianie aliasu AS dateF jak sugerował Gordon Linoff (powoduje to cykliczne odniesienie).

Oto ostatnie zapytanie SQL:

SELECT
dateT, PC.id_serie
FROM (
SELECT id_serie, MIN(dateF) FROM fixings GROUP BY id_serie
) AS PC1
INNER JOIN
(
(
SELECT target_calendar.dateT, series.id_serie FROM target_calendar, series
) AS PC LEFT JOIN fixings ON (PC.DateT=fixings.dateF) AND (PC.id_serie = fixings.id_serie)
)
ON
(
PC1.dateF = PC.dateT
)
WHERE
fixings.dateF Is Null
AND
DateT <= Date();

0 dla odpowiedzi nr 2

Co najmniej jednym problemem jest to, że nie definiujesz PC1.DateF. Ty też masz fixings.DateF w where klauzula, ale nie wywołano aliasu tabeli fixings w tym zakresie. Potrzebujesz aliasu kolumny w pierwszym podzapytaniu:

SELECT
dateT, PC.id_serie
FROM (
SELECT id_serie, MIN(dateF) as dateF FROM fixings GROUP BY id_serie
) AS PC1
INNER JOIN
(
SELECT target_calendar.dateT, series.id_serie FROM target_calendar, series  LEFT JOIN fixings ON (PC.DateT=fixings.dateF) AND (PC.id_serie = fixings.id_serie)
) AS PC
ON
PC1.dateF = PC.dateT
AND
(((pc1.[dateF]) Is Null))
AND
DateT <= Date();

Mieszasz także sprzężenia w starym stylu i sprzężenia w nowym stylu w from klauzula w drugim podzapytaniu. Powinny to być sprzężenia w nowym stylu.