Вложенный случай, когда с Cast и SUM - PullRequest
0 голосов
/ 06 марта 2019

Я запрашиваю ODBC через EXCEL, и мне удалось довести мое заявление до определенной стадии, но я хочу сделать еще один шаг вперед. Это потому, что я обнаружил, что если он будет одобрен, он также считается ожидающим. Итак, я собрал приведенное ниже утверждение, но оно продолжает давать отпор. Есть ли лучший способ, которым я должен вкладывать это утверждение SUM CAST CASE WHEN, так как мне нужно будет повторить это снова, но вместо подсчета я буду стремиться к СУММЕ дохода, который у меня в настоящее время есть только в одном большом сегменте.

SELECT 

Company_0.CoaCompanyName
, SUM(CASE WHEN CAST( InvoiceCreditItem_0.IciInvoiceApproved as INT) IS 1 THEN 1) AS 'Approved' 
    ELSE SUM(CASE WHEN InvoiceCreditItem_0.InvoiceCreditID IS NULL THEN 1 ) AS 'Prepared'
    ELSE SUM(CASE WHEN InvoiceCreditItem_0.InvoiceCreditID IS NOT NULL THEN 1 END) AS 'Pending'
, InvoiceCreditItem_0.IciCreatedDate
, SUM(InvoiceCreditItem_0.IciTotalNettValue) As 'Total Nett Value'
, SUM(InvoiceCreditItem_0.IciVatValue) AS 'VAT Value'


FROM

SBS.PUB.Company Company_0
, SBS.PUB.InvoiceCreditItem InvoiceCreditItem_0

WHERE

InvoiceCreditItem_0.CompanyID = Company_0.CompanyID
AND (Company_0.CoaCompanyName<>'ATOS')
AND InvoiceCreditItem_0.IciCreatedDate >= ?

GROUP BY 

Company_0.CoaCompanyName
, InvoiceCreditItem_0.IciCreatedDate

То, что я сейчас вижу, это:

Approved Prepared Pending
1         0           1
1         0           3
0         1           0
1         1           0

Что я хочу увидеть

Approved Prepared Pending
    1         0           0
    1         0           2
    0         1           0
    1         1           0

Следующий этап, на котором я смотрю, это:

CASE WHEN InvoiceCreditItem_0.InvoiceCreditID IS NULL THEN SUM(InvoiceCreditItem_0.IciTotalNettValue) END) AS 'Prepared Value'

Что я ожидаю показать:

Approved Prepared Pending 
0          1000     0
...