fischilein2
Grünschnabel
Hallo,
ich habe folgendes Problem (Access 2003). In einer Tabelle (t1) wird für ein z1 (s. Beispieltabelle) ein Eintrag pro Jahr gemacht (muss aber nicht!). Irgendwann möchte ich auswerten, für welche z1 es einen Eintrag in 2010 gibt und die noch nicht in 2011, bzw. 2012 angelegt wurden. Der SQL müsste also z1=2 und z1=3 für das Jahr 2011 zurückliefern
id | z1 | Jahr
1 | 1 | 2010
2 | 1 | 2011
3 | 2 | 2010
6 | 3 | 2010
7 | 4 | 2010
8 | 4 | 2011
9 | 4 | 2012
Ich habe es mit folgendem SQL versucht, aber der liefert nichts zurück:
SELECT DISTINCT t2010.id, t2010.z1
FROM
t1 as t2010
LEFT JOIN
t1 as t2011
ON
(
(t2010.z1 = t2011.z1) AND (t2010.Jahr = t2011.Jahr)
)
WHERE
(
(Exists
(
SELECT 1
FROM
t1 as t_alt
LEFT JOIN
t1 as t_neu
ON
(
(t_alt.z1 = t_neu.z1) AND (t_alt.Jahr = t_neu.Jahr)
)
WHERE t_neu.Jahr = 2011
)=False
)
);
Wenn jemand eine Lösung weiß, vielen vielen Dank
Schöne Grüße
fischilein
ich habe folgendes Problem (Access 2003). In einer Tabelle (t1) wird für ein z1 (s. Beispieltabelle) ein Eintrag pro Jahr gemacht (muss aber nicht!). Irgendwann möchte ich auswerten, für welche z1 es einen Eintrag in 2010 gibt und die noch nicht in 2011, bzw. 2012 angelegt wurden. Der SQL müsste also z1=2 und z1=3 für das Jahr 2011 zurückliefern
id | z1 | Jahr
1 | 1 | 2010
2 | 1 | 2011
3 | 2 | 2010
6 | 3 | 2010
7 | 4 | 2010
8 | 4 | 2011
9 | 4 | 2012
Ich habe es mit folgendem SQL versucht, aber der liefert nichts zurück:
SELECT DISTINCT t2010.id, t2010.z1
FROM
t1 as t2010
LEFT JOIN
t1 as t2011
ON
(
(t2010.z1 = t2011.z1) AND (t2010.Jahr = t2011.Jahr)
)
WHERE
(
(Exists
(
SELECT 1
FROM
t1 as t_alt
LEFT JOIN
t1 as t_neu
ON
(
(t_alt.z1 = t_neu.z1) AND (t_alt.Jahr = t_neu.Jahr)
)
WHERE t_neu.Jahr = 2011
)=False
)
);
Wenn jemand eine Lösung weiß, vielen vielen Dank
Schöne Grüße
fischilein