У меня есть вопрос, который вы найдете ниже. Как вы видите, проверка функции case на 1 значение.Когда функция с двумя тестами
SUM(case when reknr '8980' then bdr_hfl * -1 end) as Y,
Однако я бы хотел протестировать 2 вещи.
SUM (случай (когда reknr '8980') и (Dagbk не равно нулю), то bdr_hfl * -1 конец), как Y,
Я попробовал несколько вариант, но не может получить правильный результат.
Благодарим за помощь.
Добавить. Информация. Я попробовал вариант с местом расположения правых брекетов. К сожалению, он не работает. Я получаю Неоднозначность. Когда мне нравится GBk. infront of dagbkrn - функция кода. Однако я не получаю правильный результат. Похоже, он не проверяет вторую часть.
select GBK.bkstnr_sub as Ordernummer,
PRP.ParentProject as Project,
ORK.orddat as Orderdatum,
ORK.sysguid as OrderGUID,
ORK.pakbon_dat as OrderAfleverdatum,
MAX(FHK.fakdat) as Faktuurdatum,
Datepart(week,(ORK.orddat))as Week,
ORK.ord_debtor_name as Klant,
ORK.docnumber,
SUM(case when (reknr BETWEEN ' 8000' AND ' 8980') and (dagbknr IS not null) then GBK.bdr_hfl * -1 end) as Omzet,
SUM(case when reknr BETWEEN ' 7000' AND ' 7980' then GBK.bdr_hfl end) as kostprijs,
(Case when (SUM(case when reknr BETWEEN ' 8000' AND ' 8980' then GBK.bdr_hfl * -1 end)) <> 0 then
(1-(((SUM(case when reknr BETWEEN ' 7000' AND ' 7980' then GBK.bdr_hfl end))/
(SUM(case when reknr BETWEEN ' 8000' AND ' 8980' then GBK.bdr_hfl * -1 end)))))*100 end) as Marge,
GETDATE() as Datum,
DATEDIFF(day,GETDATE(),ORK.pakbon_dat) as Dagen
from [040].dbo.gbkmut as GBK with (nolock)
left join [040].dbo.orkrg as ORK with (nolock) on ORK.ordernr = GBK.bkstnr_sub
left join [040].dbo.frhkrg as FHK with (nolock) on ORK.ordernr = FHK.ordernr
left join [040].dbo.PRProject as PRP with (nolock) on PRP.ProjectNr = ORK.projectnr
where (GBK.dagbknr = 50 or GBK.dagbknr = 40) and ork.ordernr = '15104231' and
GBK.bkstnr_sub in (
Select ordernr
from [040].dbo.orkrg
where ord_soort = 'V' and
status = 'A' and
YEAR(orddat)> '2014')
and ORK.productline is null
and DATEDIFF(day,GETDATE(),ORK.pakbon_dat) <-45
Group by GBK.bkstnr_sub,PRP.ParentProject,ORK.sysguid,ORK.orddat,ORK.pakbon_dat,Datepart(week,(ORK.orddat)), ORK.ord_debtor_name,ORK.docnumber -- order by Datepart(week,(ORK.orddat))
Вы Погружает '=' 'между reknr' и' '8980''? –
@GordonLinoff Это не скомпилируется, но OP не упоминает ошибку, но неверный результат, я предполагаю, что OP забыл добавить 'else 0' (или что бы это ни было)? – artm
Какой у вас результат? – AXMIM