webForumDet fria alternativet

INNER/OUTER

1 svar · 427 visningar · startad av clarkbones

clarkbonesMedlem sedan feb. 20012 693 inlägg
#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.

LarsGMedlem sedan dec. 200012 465 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)
Genererad på 372 ms · cache AV · v20260730165559-full.f96bc7eb