текущий SQL у вас в порядке, вы не должны изменять это.
Если вам нужно разделить и разделить обе записи, вы можете сделать это:
WITH W_RESULT AS (
-- your current query goes here....
)
SELECT acc_name, dr_sum, 0 AS cr_sum
FROM W_RESULT
WHERE dr_sum <> 0
UNION
SELECT acc_name, 0 AS dr_sum, cr_sum
FROM W_RESULT
WHERE cr_sum <> 0
после обновленного решения, включая комментарии в форме обсуждения
WITH W_RESULT AS (
-- your current query goes here....
)
SELECT acc_name, dr_sum, 0 AS cr_sum
FROM W_RESULT
WHERE dr_sum <> 0
UNION
SELECT acc_name, 0 AS dr_sum, cr_sum
FROM W_RESULT
WHERE cr_sum <> 0
UNION ALL
SELECT 'Total' AS acc_name, SUM(dr_sum), SUM(cr_sum)
FROM W_RESULT
предыдущее обсуждение ...
к общей сумме, которую вы можете добавить к вашему запросу sum(j.dr_amt + j.cr_amt) AS t_sum
, и если вам это нужно также в качестве отдельной записи в наборе результатов, вы можете расширить вышеуказанное решение, используя WITH-предложение и UNION с дополнительным столбцом и одним дополнительным UNION. раздел. Или, может быть, даже проще, как это:
WITH W_RESULT AS (
-- your current query goes here....
)
SELECT acc_name, dr_sum, 0 AS cr_sum, 0 AS t_sum
FROM W_RESULT
WHERE dr_sum <> 0
UNION
SELECT acc_name, 0 AS dr_sum, cr_sum, 0 AS t_sum
FROM W_RESULT
WHERE cr_sum <> 0
UNION
SELECT acc_name, 0 AS dr_sum, 0 AS cr_sum, dr_sum + cr_sum AS t_sum
FROM W_RESULT
важный
текущий запрос из вопроса, на который я ссылаюсь, является первым.
«Последний запрос» в конце вопроса немного странный.
Это что-то вроде
- сумма «Денежные средства в кассе 3000» + «Транспортные средства 5000» = 8000 как dr_sum
- сумма «Денежные средства в кассе 5000» + «Акционерный капитал 3000» = 8000 как cr_sum
Я предполагал, что было запрошено total_sum, что-то вроде
- сумма «Денежные средства в кассе 3000» + «Денежные средства в кассе 5000» = 8000 при сумме
- сумма "Уставного капитала 3000" = 3000 как сумма
- сумма «Транспортные средства 5000» = 5000 как сумма
Пожалуйста, добавьте комментарий, правильная сумма.