SQL Group вместе с тем же номером счета - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть структура таблицы, как показано ниже

enter image description here

Мое требование - я должен сгруппировать по номеру счета и описанию и показать общую сумму, как показано ниже

enter image description here

Я пытался записать группу

SELECT AC_NUMBER, AC_NAME, SUM(ISNULL(DEBIT,0)) DEBIT, SUM(ISNULL(CREDIT,0)) CREDIT
FROM AC_TRANSACTION
GROUP BY AC_NUMBER, AC_NAME

но номер счета 1234-00 суммируется на всю сумму и отображается в одну строку, как показано ниже enter image description here

В основном Trasnaction_id связан с первой таблицей. Идентификатор транзакции для первой таблицы в заказе: 3344,3345,3355,3356,3467,3468, 4123,4124, например

Каждый раз, когда будет создана 2 транзакция, одна будет BOA и с другим описанием так что если вы сделаете заказ по транзакции, вы получите первый порядок таблицы выше Как нам этого добиться?

1 Ответ

0 голосов
/ 16 апреля 2019

Если в вашей таблице есть поле identity_: Пример:

DECLARE @A table ( identity_field int identity(1,1),prod_id NVARCHAR(10) , v int)
INSERT into @A(prod_id,v)
VALUES('A',10),('A',20),('B',30),('A',40),('B',50),('B',60),('B',70),('A',80),('C',90);

WITH A AS (
select row_number()over (order by prod_id,identity_field) nr,*
from @A)
,B AS(
SELECT identity_field-nr group_field,*
FROM A
)
select MIN(identity_field) tran_id,prod_id, SUM(v) sum_v
FROM B
GROUP BY prod_id,group_field
order by MIN(identity_field)

для вашего стола:

WITH A AS (
select identity_field-row_number()over (order by ACCOUNT_NUMBER,DESCRIPTION,identity_field) group_field,*
from YOUT_TABLE)

select MIN(identity_field) tran_id,ACCOUNT_NUMBER,DESCRIPTION, SUM(DEBIT) transact_debit,SUM(CREDIT) transact_credit
FROM A
GROUP BY ACCOUNT_NUMBER,DESCRIPTION,group_field
order by MIN(identity_field)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...