Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
|
|||
|---|---|---|---|
|
#18+
Запросом я получаю 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2002, 14:45 |
|
||
|
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
|
|||
|---|---|---|---|
|
#18+
Привести результаты к одинаковому виду - можно через AS; Сложить обе таблицы через Union. Сделать выборку из полученного объединения с нужной группировкой/суммированием. (еще один Select) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2002, 16:07 |
|
||
|
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
|
|||
|---|---|---|---|
|
#18+
Как сложить 2 таблицы через UNION ??? И все перекинуть в 3-ю ???? Я знаю как это сделать через INSERT Что лучше будет в этом случае (при работе с временными таблицами)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2002, 06:06 |
|
||
|
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
|
|||
|---|---|---|---|
|
#18+
Можно конечно и курсором загнать во временную табличку ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2002, 06:52 |
|
||
|
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
|
|||
|---|---|---|---|
|
#18+
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 как-то странновато выглядит ваш базовый запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2002, 08:47 |
|
||
|
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
|
|||
|---|---|---|---|
|
#18+
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 как-то странновато выглядит ваш базовый запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2002, 08:48 |
|
||
|
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
|
|||
|---|---|---|---|
|
#18+
> Я конечно не знаю всей вашей базы но использование конструкций вроде > Production_ID=(Select TOP 1 ID_ from Production WHERE Production.ID=Production_ID) > говорит мне, что либо у вас не все впорядке со структурой(на один первичный ключ несколько записей ?) либо вы заранее закладываете в свой запрос > случайный выбор данных (Select TOP 1 без ORDER BY может возвращать разную запись). IMHO как-то странновато выглядит ваш базовый запрос. Это чтобы дальше не искал, т.к. все равно не найдет. Поле естественно ключевое. TOP 1 немного ускоряет выполнение запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2002, 09:57 |
|
||
|
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
|
|||
|---|---|---|---|
|
#18+
Вообще-то я про другое Если 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2002, 10:07 |
|
||
|
Каким образом проссумировать 2 одинаковые по структуре таблицы ?
|
|||
|---|---|---|---|
|
#18+
Не так запутанно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2002, 13:40 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32024790&tid=1823611]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
132ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 455ms |

| 0 / 0 |
