Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Группировка и сложение  [new]
boolbool
Member

Откуда:
Сообщений: 6
Есть 4 таблицы из них взяты данные, не получается сгруппировать похожие Invoice_No и сложить их по Qty...

select SalOutD.Invoice_No, Qty from SalOutD, SalOutH
where SalOutH.Doc_Type = 4 and SalOutD.Invoice_No = SalOutH.Invoice_No
UNION
select SalInD.Invoice_No, Qty from SalInD, SalInH
where SalInH.Doc_Type = 4 and SalInD.Invoice_No = SalInH.Invoice_No

/* выдаёт все нужные Invoice_No и такие же */

select SalOutD.Invoice_No from
(
select SalOutD.Invoice_No, Qty from SalOutD, SalOutH
where SalOutH.Doc_Type = 4 and SalOutD.Invoice_No = SalOutH.Invoice_No
UNION
select SalInD.Invoice_No, Qty from SalInD, SalInH
where SalInH.Doc_Type = 4 and SalInD.Invoice_No = SalInH.Invoice_No
) SalOutD, SalOutH, SalInD, SalInH
group by SalOutD.Invoice_No

/* могу их сгруппировать, но не могу правильно сложить строки Qty */
Подскажите, пожалуйста, как это правильно сделать ?
24 июл 18, 21:43    [21599593]     Ответить | Цитировать Сообщить модератору
 Re: Группировка и сложение  [new]
londinium
Member

Откуда: Киев
Сообщений: 1169
boolbool,
select X.Invoice_No,SUM(X.QTY) AS Summ  from
(
select SalOutD.Invoice_No, Qty from SalOutD, SalOutH
where SalOutH.Doc_Type = 4 and SalOutD.Invoice_No = SalOutH.Invoice_No
UNION
select SalInD.Invoice_No, Qty from SalInD, SalInH
where SalInH.Doc_Type = 4 and SalInD.Invoice_No = SalInH.Invoice_No
) X
GROUP BY X.Invoice_No


?
24 июл 18, 21:55    [21599613]     Ответить | Цитировать Сообщить модератору
 Re: Группировка и сложение  [new]
boolbool
Member

Откуда:
Сообщений: 6
londinium,

ооо, супер, а как получить тогда разницу между двумя Qty?
24 июл 18, 22:02    [21599630]     Ответить | Цитировать Сообщить модератору
 Re: Группировка и сложение  [new]
boolbool
Member

Откуда:
Сообщений: 6
londinium,

SalInD.Qty - SalOutD.Qty пробовал так, но получалась полная фигня
24 июл 18, 22:03    [21599636]     Ответить | Цитировать Сообщить модератору
 Re: Группировка и сложение  [new]
invm
Member

Откуда: Москва
Сообщений: 9347
boolbool
а как получить тогда разницу между двумя Qty?
select X.Invoice_No,SUM(X.QTY) AS Summ  from
(
select SalOutD.Invoice_No, -Qty from SalOutD, SalOutH
where SalOutH.Doc_Type = 4 and SalOutD.Invoice_No = SalOutH.Invoice_No
union all
select SalInD.Invoice_No, Qty from SalInD, SalInH
where SalInH.Doc_Type = 4 and SalInD.Invoice_No = SalInH.Invoice_No
) X(Invoice_No, Qty)
GROUP BY X.Invoice_No
24 июл 18, 22:37    [21599721]     Ответить | Цитировать Сообщить модератору
 Re: Группировка и сложение  [new]
londinium
Member

Откуда: Киев
Сообщений: 1169
автор
а как получить тогда разницу между двумя Qty?


можно попробовать что-то в таком духе
select X.Invoice_No,SUM(X.SOLDOUT) AS SOLDOUT,SUM(X.SoldIn)SOLDIN  from
(
select SalOutD.Invoice_No, Qty AS SoldOut,0 AS SoldIn  
FROM SalOutD  OD
JOIN SalOutH   OH ON OD.INVOICE_NO=OH.INVOICE_NO
WHERE OH.Doc_Type = 4 

UNION ALL

select SalInD.Invoice_No, 0 AS SoldOut,Qty as SoldIn 
FROM SalInD IND
JOIN SalInH  INH 
ON IND.Invoice_No=INH.Invoice_No
WHERE INH.Doc_Type = 4 
) X
GROUP BY X.Invoice_No
24 июл 18, 22:37    [21599724]     Ответить | Цитировать Сообщить модератору
 Re: Группировка и сложение  [new]
boolbool
Member

Откуда:
Сообщений: 6
Спасибо большое, помогли
24 июл 18, 22:40    [21599731]     Ответить | Цитировать Сообщить модератору
 Re: Группировка и сложение  [new]
boolbool
Member

Откуда:
Сообщений: 6
invm,

только ещё один вопрос, осталось разобраться с этим, X(Invoice_No, Qty) - что это? темп таблица с двумя столбцами ?
24 июл 18, 22:46    [21599746]     Ответить | Цитировать Сообщить модератору
 Re: Группировка и сложение  [new]
invm
Member

Откуда: Москва
Сообщений: 9347
boolbool
X(Invoice_No, Qty) - что это?
https://docs.microsoft.com/ru-ru/sql/t-sql/queries/from-transact-sql?view=sql-server-2017 - см. derived_table
24 июл 18, 22:55    [21599765]     Ответить | Цитировать Сообщить модератору
 Re: Группировка и сложение  [new]
boolbool
Member

Откуда:
Сообщений: 6
invm,

спасибо :)
24 июл 18, 22:58    [21599770]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить