Ich habe eine SQL-Abfrage (unten), die nicht funktioniert, wenn das heutige Datum nicht in der Tabelle vorhanden ist. Wie erzwinge ich eine leere Zeile ohne Werte außer dem heutigen Datum im Datumsfeld? Dies ist ein Rückblick von Jahr zu Jahr, aber der Schlüssel ist das heutige Datum.Abfrage muss Zeile zurückgeben, wenn keine Zeile vorhanden ist
select p.*
from [Apprise].[dbo].[adadjusttotal] c
--- Match
join (select distinct a.adjustdate as curr_dte, max(b.adjustdate) over (partition by a.adjustdate) as prev_dte
from [Apprise].[dbo].[adadjusttotal] a
join [Apprise].[dbo].[adadjusttotal] b on year(a.adjustdate) -1 >= year(b.adjustdate)
and month(a.adjustdate) >= month(b.adjustdate)
and day(a.adjustdate) >= day(b.adjustdate)
where a.adjustdate > getdate() -5) x
on c.adjustdate = x.curr_dte
--- Prev Year
join [Apprise].[dbo].[adadjusttotal] p
on p.adjustdate = x.prev_dte
where cast(c.adjustdate as date) = cast(getdate() as date)
and p.adjusttype = 'QuarterByDate'
Mögliches Duplikat von [Ist es möglich, eine leere Zeile von Sql Server zurückzugeben?] (Http://stackoverflow.com/questions/5297348/is-it-possible-to-return-empty-row-from-sql- Server) – sstan
Ich kann es nicht auf die gleiche Weise anwenden. – Pam
Ist das wirklich korrekt in Ihrem sql: 'Tag (a.adjustdate)> = Tag (b.adjustdate)'? - Ich sehe nicht wirklich, in welcher Art von Logik der Tag des Monats größer sein muss als ein anderer Tag im Monat, unabhängig davon, um welchen Monat es sich handelt. –