Ich möchte die erste Zeile nur aus einer inneren Verbindung zurückgeben. Ich habe zwei Tabellen:Need eine Zeile nur von INNER JOIN zurückgegeben
TABLE_X | TABLE_Y
id | id creationdate xid
1 | 1 01/01/2011 1
2 | 2 01/01/2011 1
3 | 3 31/12/2010 2
4 | 4 28/12/2010 3
Zeilen in der Tabelle Y gleich Schöpfung haben Daten so bin ich zum ersten Mal des MAX bekommen (creation) und dann anschließend MAX (id) aus diesem Satz, zum Beispiel:
SELECT a.id,
c.id,
d.id,
e.id,
d.CREATIONDATE,
a.REFNUMBER,
a.DATECREATED,
a.DESCRIPTION,
e.CATEGORYCODE,
e.OUTSTANDINGAM_MONAMT,
e.PREVPAIDAMOUN_MONAMT,
e.TOTALINCURRED_MONAMT,
e.LOSSFROMDATE,
FROM
TABLE_A a
INNER JOIN TABLE_B b ON (b.id = a.id)
INNER JOIN TABLE_C c ON (c.id = b.id)
INNER JOIN TABLE_D d ON
(
c.i =
(
select
d.id
FROM TABLE_D
WHERE TABLE_D.id = c.id
AND TABLE_D.id =
(
select
max(id)
from TABLE_D t1
where c_id = c.id
and CREATIONDATE =
(
select
max(CREATIONDATE)
from TABLE_D t2
where t2.c_id = t1.c_id
)
)
)
)
INNER JOIN TABLE_E e ON
(
d.i =
(
select
e.d_id
from TABLE_E
where d_id = d.id
AND id =
(
select
max(id)
from e t1
where e.d_id = d.id
and CREATIONDATE =
(
select
max(CREATIONDATE)
from TABLE_E t2
where t2.d_id = t1.d_id
)
)
)
)
Dies funktioniert, wenn ich es auf seine eigene nennen, aber wenn ich es zu einem inneren hinzufügen JOIN ich eine Zeile für jede passende Zeile in der Tabelle Y. bekommen
Was ich will, ist die letzte Platte von creation und id wo xid = ID aus TABELLE_X.
Können Sie uns Ihren Versuch der inneren Verbindung zeigen? –
Was Marcelo sagte. Das Problem liegt wahrscheinlich im JOIN selbst. Nimmst du zum Beispiel an ID oder MAX (ID) teil? –
Die MAX (ID) - ist die ID-Spalte von X oder Y? –