24. maj 2016 - 10:39Der er
4 kommentarer og 1 løsning
Left outer join - giver "join svaret" på alle linjer
Hej
Jeg har forsøgt mig med min første kode. Den ser sådan ud.
use AXDB50 select p.DATAAREAID as 'Selskab',p.PROJID as 'Projektnummer',MAX(PROJCOSTTRANS.TRANSDATE) as 'Sidste udgiftsdato'
from projtable as p,PROJCOSTTRANS as u,PROJTABLE as p2
left outer join PROJCOSTTRANS on p2.PROJID = PROJCOSTTRANS.PROJID and p2.DATAAREAID = PROJCOSTTRANS.DATAAREAID
where p2.DATAAREAID = 'kv' and PROJCOSTTRANS.DATAAREAID = 'kv' and p.DATAAREAID = 'kv' and u.DATAAREAID = 'kv'
group by p.PROJID, p.DATAAREAID
Jeg tror det er et let problem for nogen, men den driller mig. Resultatet er: KV 1 2016-05-02 KV 13 2016-05-02 KV 1307 2016-05-02 KV 13070008 2016-05-02
Tak for hurtigt svar, men jeg forstår det desværre ikke.
Du skriver, at jeg kun får rækker retur, hvor projcosttrans er udfyldt. Men jeg får jo faktisk projcosttrans datoen med på alle rækker - selvom den kun burde komme på den nederste række.
Hvad skal jeg skrive om?
Synes godt om
Slettet bruger
24. maj 2016 - 13:43#3
Du har både projtable og pejcosttrans med to gange - hvorfor?
Jeg tror kun du behøvet dette:
select p.DATAAREAID as 'Selskab', p.PROJID as 'Projektnummer', MAX(PROJCOSTTRANS.TRANSDATE) as 'Sidste udgiftsdato' from projtable as p left outer join PROJCOSTTRANS on PROJCOSTTRANS.PROJID = p.PROJID and PROJCOSTTRANS.DATAAREAID = p.DATAAREAID where p.DATAAREAID = 'kv'
Ja, jeg var lige igang med at foreslå at prøve det raph skriver og se om det fører til det du ønsker. Jeg ville gøre det lidt kortere og mere overskueligt ved også at bruge alias for tabellen PROJCOSTTRANS, såsom:
select p.DATAAREAID as 'Selskab', p.PROJID as 'Projektnummer', MAX(u.TRANSDATE) as 'Sidste udgiftsdato' from projtable as p left outer join PROJCOSTTRANS as u on u.PROJID = p.PROJID and u.DATAAREAID = p.DATAAREAID where p.DATAAREAID = 'kv'
Tak for svar. Det var en virkelig god første gangs oplevelse med eksperten.dk
De virker begge to, men rahp var først, så det er vel ham, der skal have point.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.