webForumDet fria alternativet

INNER/OUTER

Databaser & SQL

1 svar · 429 visningar · startad av clarkbones

Medlem sedan feb. 20013 023 inlägg
Frågan#1

Hej!

Jag ska selektera ett antal transaktioner i en värdepappersdatabas FS_Fond(SQL Server 2000). Problemet är att det inte finns kurser för samtliga värdepapper i tabellen HISTINST. INSTRUMENT innehåller värdepappersbeteckningarna.

Jag visar nedan en delmängd av SQL-satsen, där problemet ligger.

INNER JOIN (SELECT Instrument,Rate FROM FS_Fond..HISTINST H
WHERE HISTDATE=(SELECT MAX(HISTDATE) FROM FS_Fond..HISTINST WHERE INSTRUMENT=H.INSTRUMENT
AND HISTDATE<=@ToDate)) lr ON lr.Instrument=t.InstrumentId

Min önskan är att även de transaktioner där värdepappret inte har någon kurs ska listas --> Någon join borde ändras? Har försökt med LEFT/RIGHT/OUTER utan att lyckas.

Medlem sedan dec. 200012 464 inlägg
#2
left JOIN FS_Fond..HISTINST H
on  h.Instrument=t.InstrumentId
and HISTDATE = 
  (SELECT MAX(HISTDATE) 
     FROM FS_Fond..HISTINST 
    WHERE INSTRUMENT=H.INSTRUMENT
   AND HISTDATE<=@ToDate)
253 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)