Я запрашиваю ODBC через EXCEL, и мне удалось довести свое заявление до определенного этапа, но я хочу сделать еще один шаг вперед. Это потому, что я обнаружил, что если он одобрен, он также считается ожидающим рассмотрения. Итак, я составил приведенное ниже утверждение, но оно продолжает отбиваться. Есть ли лучший способ, которым я должен вложить этот оператор SUM CAST CASE WHEN, так как мне нужно будет повторить это снова, но вместо того, чтобы подсчитывать, я буду искать SUM дохода, который у меня в настоящее время есть только в одном большом ведре.
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
Гордон, теперь я отредактировал еще пять визуальных образов того, что я смотрю, я полагаю, что ODBC подключен к базе данных прогресса v10.


Примеры данных, желаемые результаты, объяснение логики, которую вы хотите реализовать, и правильный тег базы данных — все это поможет.