powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Каким образом проссумировать 2 одинаковые по структуре таблицы ?
10 сообщений из 10, страница 1 из 1
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
    #32024778
Фотография XDefender
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запросом я получаю 2 таблицы #T1 & #T2 по структуре полностью идентичные.
Каким образом их можно проссумировать по полям т.е. Group by Production_ID


SET DATEFORMAT DMY

SELECT Production_ID=(Select TOP 1 ID_ from Production WHERE Production.ID=Production_ID),
ProductionName=(SELECT TOP 1 NAME From Production WHERE Production.ID=Production_ID),
Quantity=sum(in_box*boxs),
QuantityBOXS=sum(in_box*boxs)/(SELECT in_box from Production WHERE Production.ID=Production_ID),
Summ=sum(Suma)
INTO #T1
FROM SalesProduction INNER JOIN Factures ON Factures.ID=Factura_ID AND Factures.DATA BETWEEN '10.10.2001' AND '10.10.2002'
GROUP BY Production_ID
ORDER BY Summ

SELECT Production_ID,
ProductionName=(SELECT TOP 1 NAME From RusnacSQL..Production PD WHERE PD.ID=Production_ID),
Quantity=sum(in_box*boxs),
QuantityBOXS=sum(in_box*boxs)/(SELECT in_box from Production WHERE Production.ID=Production_ID),
Summ=sum(Suma)
INTO #T2
FROM RusnacSQL..SalesProduction SP INNER JOIN RusnacSQL..Factures FC ON FC.ID=SP.Factura_ID AND FC.DATA BETWEEN '10.10.2001' AND '10.10.2002'
GROUP BY SP.Production_ID
ORDER BY Summ
...
Рейтинг: 0 / 0
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
    #32024782
Привести результаты к одинаковому виду - можно через AS;
Сложить обе таблицы через Union.
Сделать выборку из полученного объединения с нужной
группировкой/суммированием. (еще один Select)
...
Рейтинг: 0 / 0
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
    #32024790
Фотография XDefender
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как сложить 2 таблицы через UNION ??? И все перекинуть в 3-ю ????

Я знаю как это сделать через INSERT

Что лучше будет в этом случае (при работе с временными таблицами)?
...
Рейтинг: 0 / 0
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
    #32024808
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно конечно и курсором загнать во временную табличку
!
...
Рейтинг: 0 / 0
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
    #32024822
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO

SET DATEFORMAT DMY

SELECT Production_ID,
ProductionName,
Quantity=sum(Quantity),
QuantityBOXS=sum(QuantityBOXS),
Summ=sum(Summ)
INTO #T3
FROM
(SELECT Production_ID=(Select TOP 1 ID_ from Production WHERE Production.ID=Production_ID),
ProductionName=(SELECT TOP 1 NAME From Production WHERE Production.ID=Production_ID),
Quantity=in_box*boxs,
QuantityBOXS=(in_box*boxs)/(SELECT in_box from Production WHERE Production.ID=Production_ID),
Summ=Suma
FROM SalesProduction INNER JOIN Factures ON Factures.ID=Factura_ID AND Factures.DATA BETWEEN '10.10.2001' AND '10.10.2002'
UNION ALL
SELECT Production_ID,
ProductionName=(SELECT TOP 1 NAME From RusnacSQL..Production PD WHERE PD.ID=Production_ID),
Quantity=(in_box*boxs),
QuantityBOXS=(in_box*boxs)/(SELECT in_box from Production WHERE Production.ID=Production_ID),
Summ=Suma
FROM RusnacSQL..SalesProduction SP INNER JOIN RusnacSQL..Factures FC ON FC.ID=SP.Factura_ID AND FC.DATA BETWEEN '10.10.2001' AND '10.10.2002'
)
GROUP BY Production_ID, ProductionName


PS
Я конечно не знаю всей вашей базы но использование конструкций вроде
Production_ID=(Select TOP 1 ID_ from Production WHERE Production.ID=Production_ID)
говорит мне, что либо у вас не все впорядке со структурой(на один первичный ключ несколько записей ?) либо вы заранее закладываете в свой запрос случайный выбор данных (Select TOP 1 без ORDER BY может возвращать разную запись). IMHO как-то странновато выглядит ваш базовый запрос.
...
Рейтинг: 0 / 0
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
    #32024823
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO

SET DATEFORMAT DMY

SELECT Production_ID,
ProductionName,
Quantity=sum(Quantity),
QuantityBOXS=sum(QuantityBOXS),
Summ=sum(Summ)
INTO #T3
FROM
(SELECT Production_ID=(Select TOP 1 ID_ from Production WHERE Production.ID=Production_ID),
ProductionName=(SELECT TOP 1 NAME From Production WHERE Production.ID=Production_ID),
Quantity=in_box*boxs,
QuantityBOXS=(in_box*boxs)/(SELECT in_box from Production WHERE Production.ID=Production_ID),
Summ=Suma
FROM SalesProduction INNER JOIN Factures ON Factures.ID=Factura_ID AND Factures.DATA BETWEEN '10.10.2001' AND '10.10.2002'
UNION ALL
SELECT Production_ID,
ProductionName=(SELECT TOP 1 NAME From RusnacSQL..Production PD WHERE PD.ID=Production_ID),
Quantity=(in_box*boxs),
QuantityBOXS=(in_box*boxs)/(SELECT in_box from Production WHERE Production.ID=Production_ID),
Summ=Suma
FROM RusnacSQL..SalesProduction SP INNER JOIN RusnacSQL..Factures FC ON FC.ID=SP.Factura_ID AND FC.DATA BETWEEN '10.10.2001' AND '10.10.2002'
)
GROUP BY Production_ID, ProductionName


PS
Я конечно не знаю всей вашей базы но использование конструкций вроде
Production_ID=(Select TOP 1 ID_ from Production WHERE Production.ID=Production_ID)
говорит мне, что либо у вас не все впорядке со структурой(на один первичный ключ несколько записей ?) либо вы заранее закладываете в свой запрос случайный выбор данных (Select TOP 1 без ORDER BY может возвращать разную запись). IMHO как-то странновато выглядит ваш базовый запрос.
...
Рейтинг: 0 / 0
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
    #32024832
Фотография XDefender
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Я конечно не знаю всей вашей базы но использование конструкций вроде

> Production_ID=(Select TOP 1 ID_ from Production WHERE Production.ID=Production_ID)

> говорит мне, что либо у вас не все впорядке со структурой(на один первичный ключ несколько записей ?) либо вы заранее закладываете в свой запрос
> случайный выбор данных (Select TOP 1 без ORDER BY может возвращать разную запись). IMHO как-то странновато выглядит ваш базовый запрос.

Это чтобы дальше не искал, т.к. все равно не найдет. Поле естественно ключевое. TOP 1 немного ускоряет выполнение запроса.
...
Рейтинг: 0 / 0
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
    #32024834
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то я про другое
Если Production.ID есть перичный ключ, то почему вы используете запрос в качестве столбца, а не INNER JOIN

SELECT c.NAME AS ProductionName
FROM SalesProduction a
INNER JOIN Factures b ON b.ID=a.Factura_ID AND b.DATA BETWEEN '10.10.2001' AND '10.10.2002'
INNER JOIN Production c ON c.ID=a.Production_ID
...
Рейтинг: 0 / 0
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
    #32024859
Фотография XDefender
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не так запутанно
...
Рейтинг: 0 / 0
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
    #32024860
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм, IMHO довольно странный критерий для писания запросов. А как же вопрос производительности ? Ну впрочем дело ваше.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Каким образом проссумировать 2 одинаковые по структуре таблицы ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]