Как добавить фильтр диапазона дат в подзапрос на сервере SQL? - PullRequest
0 голосов
/ 30 января 2020

Я попытался создать отчет, чтобы получить данные о продажах и сборе за определенный диапазон дат. Но я получил некоторые данные, которые не относятся к этому периоду. Как это решить? Здесь мой запрос

select a.DocDate as 'Order Date',f.DocDate as 'Collection Date',b.LineTotal as 'fbsales amount',a.SlpCode,a.CardCode,b.DocEntry,
sum(case when e.TaxCode = 'NBT2' then cast(e.LineTotal as decimal(22,8)) /1.02 
when e.TaxCode = 'N2+V15' then (cast(e.LineTotal as decimal(22,8)) /1.173)  
when e.TaxCode = 'VAT8' then (cast(e.LineTotal as decimal(22,8)) /1.08) else e.LineTotal end  ) as 'fbdwnp without vat',b.LineNum
from ORDR a
left join RDR1 b on b.DocEntry = a.DocEntry
left join OSLP c on c.SlpCode = a.SlpCode
left join OITM d on d.ItemCode = b.ItemCode
left Join (select TaxCode,LineTotal,BaseEntry,BaseLine,DocEntry from DPI1 where [TargetType]<>'14') e on e.BaseEntry = b.DocEntry and e.BaseLine = b.LineNum
left Join (select DocEntry,DocDate From ODPI where CANCELED = 'N' and DocDate between '20190101' and '20191231') f on f.DocEntry = e.DocEntry
where a.CANCELED = 'N' and d.U_Product_Type = 'Facebook'  and a.DocDate between '20190101' and '20191231' and a.SlpCode = 68
group by c.SlpName,a.SlpCode,b.LineTotal,d.DocEntry,a.CardCode,c.SlpName,b.DocEntry,a.DocDate,b.LineNum,f.DocDate

Выделенная строка следующего числа pi c должна отображать только «сумму fbsales», но также отображает сумму «fbdwnp withoit vat». Потому что дата продажи - 30.12.2019, а дата сбора - 09.01. 0,2020.

Что я могу сделать, чтобы решить эту проблему

enter image description here

1 Ответ

0 голосов
/ 30 января 2020

Попробуйте добавить:

and a.DocDate is not null

к запросу

...