Прошу помочь в составлении запроса к БД по следующим критериям.
Бухгалтер хочет видеть в отчете по выполненным актам на оказание услуг katsopr.vidsopr = 211,
Код КА кому оказана услуга, наименование подразделения и балансовый счет, на которое отнесены затраты по оказанию услуги, сумму выручки, ндс и сумму затрат. Код подразделения
получаю из аналитики по счету кредита 90 11.
Код: Выделить всё
SQL QUERY qUsl =
SELECT DISTINCT
KATORG.CODE, KATSOPR.NSOPR, OBOROT.SCHETK, OBOROT.SUBSCHK, OBOROT.SUMOB, OBOROT.DATOB, OBOROT.SODPR, SPKAU.CODE
FROM KATSOPR
LEFT JOIN OBOROT ON KATSOPR.NREC = OBOROT.CSOPRDOC
AND KATSOPR.VIDSOPR = OBOROT.TIDKGAL
LEFT JOIN SPKAU ON OBOROT.KAUKS[1] = SPKAU.NREC
LEFT JOIN SPSOPR ON KATSOPR.NREC = SPSOPR.CSOPR
LEFT JOIN KATUSL ON SPSOPR.CMCUSL = KATUSL.NREC
LEFT JOIN KATORG ON KATSOPR.CORG = KATORG.NREC
LEFT JOIN DOGOVOR ON KATSOPR.CDOGOVOR = DOGOVOR.NREC
LEFT JOIN KATOTPED ON SPSOPR.COTPED = KATOTPED.NREC
WHERE KATSOPR.VIDSOPR = '211' AND
KATSOPR.DSOPR BETWEEN :dStart AND :dEnd AND
ORDER BY KATSOPR.NSOPR
NREC KA #док Schetk SubSchk KauKS[1] SumOB
зап1 k2 11111 90 11 1 1400 <-- [Выручка]
зап2 k2 11111 68 123 2 280 <-- [НДС]
зап3 k2 11111 90 11 1 280 <-- [НДС]
зап4 k2 11111 23 3 1231 <-- [Затраты]
Бухгалтер хочет видеть в отчете суммы по док-ту одной строкой
--------------------------------------------------------------------------------------------------------------
Код КА | №Док-та | Сумма Выручки | НДС | Затраты | Подразделение
--------------------------------------------------------------------------------------------------------------
k2 | 1111111 | 1400 | 280 | 1231 | склад1.
--------------------------------------------------------------------------------------------------------------
Можно ли составить прямой запрос SQL таким образом, чтобы развернуть значения поля [SumOb] из колонки в одну строку?
Или в отсутствии такой возможности в цикле бежать по всем проводкам и анализировать?
Пытался применить оператор PIVOT, но получил сообщение о синтаксической ошибке.
Код: Выделить всё
SELECT
nodok, [90], [23]
FROM oborot
PIVOT (SUM(sumob) FOR schetk in ([90], [23] ) as pvt;