Laatste datum in een inner select

Status
Niet open voor verdere reacties.

Myclos81

Gebruiker
Lid geworden
17 nov 2007
Berichten
157
Code:
SELECT

p.lastname + ' ' + p.firstname AS Naam,
CodeFacturatiedienst.value AS [Code facturatiedienst],
Reactie.value AS Reactie,
ReactieDatum.value AS Datum


from
person AS p LEFT JOIN
ppart AS pp ON p.personid = pp.personid LEFT JOIN

(select RA_c.value, ra.registrationid, ra.questionid
	from
	answers ra inner join
	answers_multilinetextvalue RA_c on ra.registrationanswerid = RA_c.registrationanswerid
) AS Reactie ON r.registrationid = Reactie.registrationid LEFT JOIN

(select RA_d.value, ra.registrationid, ra.questionid
	from
	answers ra inner join
	answers_datevalue RA_d on ra.registrationanswerid = RA_d.registrationanswerid
) AS Datum ON r.registrationid = ReactieDatum.registrationid

Hoe kan ik er nu voor zorgen dat hij bij "Datum" niet alles pakt maar enkel de laatste datum.
Heb al MAX geprobeerd maar dit lukt niet, ook omdat hij dit niet wil nemen in de inner select.
 
Het is moeilijk om het probleem te begrijpen vanuit alleen de query. Ik neem aan dat je "datum" bedoeld als uit de tweede subquery? Ik begrijp dan alleen niet waarom je een left-join met twee subqueries gebruikt. Afhankelijk van wat je wil bereiken een LIMIT op je tweede subquery, of een GROUP BY in je hoofdquery.

Maar ik probeer me het probleem te visualiseren met alleen deze informatie, dus mogelijk wil je eigenlijk iets heel anders zien :)
 
Dag Wampier,

ik wil dus inderdaad de laatste datum van mijn tweede subquery. Wat bedoel je met LIMIT op tweede subquery? En ik krijg inderdaad ook wel eens een GROUP BY fout als ik bijvoorbeeld volgende doe:

Code:
(select MAX(RA_d.value), ra.registrationid, ra.questionid
	from
	answers ra inner join
	answers_datevalue RA_d on ra.registrationanswerid = RA_d.registrationanswerid
) AS Datum ON r.registrationid = ReactieDatum.registrationid
 
Dat komt omdat je probeert MAX los te laten op een geaggregeerde tabel, waarbij je niet verteld hoe je die 'uit wil rollen'.

[sql]select MAX(RA_d.value), ra.registrationid, ra.questionid
from
answers ra inner join
answers_datevalue RA_d on ra.registrationanswerid = RA_d.registrationanswerid GROUP BY RA_d[/sql]
 
Ok, dat begrijp ik maar nu krijg ik:

1.Msg 8155, Level 16, State 2, Line 40
No column name was specified for column 1 of 'ReactieDatum'.
2.Msg 207, Level 16, State 1, Line 18
Invalid column name 'value'.

1 verwijst naar:
Code:
) AS ReactieDatum ON r.registrationid = ReactieDatum.registrationid LEFT JOIN

2 verwijst naar:
Code:
ReactieDatum.value AS Datum
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan