powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Сумма группы
11 сообщений из 11, страница 1 из 1
Сумма группы
    #38834082
Vovsla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица
"CREATE TABLE IF NOT EXISTS SelectedGoods (GoodsCode NUMERIC NOT NULL, GoodsQuantity NUMERIC NOT NULL, WarehouseNum NUMERIC NOT NULL, GoodsShipment NUMERIC NOT NULL, UNIQUE(GoodsCode, GoodsShipment, WarehouseNum) )

Необходимо получить GoodsCode, GoodsShipment, (сумму для каждой группы GoodsCode, WarehouseNum), GoodsQuantity, WarehouseNum

Есть данные:
GoodsCode GoodsShipment GoodsQuantity WarehouseNum
1108571 | 1649250 1 |30605
1108571 | 1657820 1 |30605
1136143 | 1651233 1 |30605

Делаю выборку из таблицы
"SELECT GoodsCode, GoodsShipment, (SELECT SUM(GoodsQuantity) FROM SelectedGoods GROUP BY GoodsCode, WarehouseNum), GoodsQuantity, WarehouseNum FROM SelectedGoods GROUP BY GoodsCode, GoodsShipment ORDER BY WarehouseNum ;"

Полученные данные прикреплены картинкой.
Получается что сумма первой группы GoodsCode, WarehouseNum распространяется на все последующие строки.
Как построить запрос чтобы сумма этой группы указывалась для каждой строчки отдельно?
...
Рейтинг: 0 / 0
Сумма группы
    #38834099
Vovsla,

как минимум - нужно указать связь между внешним запросом и вложенным подзапросом.
...
Рейтинг: 0 / 0
Сумма группы
    #38834101
Vovsla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как это сделать?
...
Рейтинг: 0 / 0
Сумма группы
    #38834105
Vovsla,

путем добавления условия WHERE в подзапрос.
...
Рейтинг: 0 / 0
Сумма группы
    #38834109
Vovsla
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT GoodsCode, GoodsShipment, 
       (SELECT SUM(GoodsQuantity) FROM SelectedGoods t1 
           where t1.WarehouseNum= t.WarehouseNum and t.GoodsCode = t.GoodsCode
       ), 
       GoodsQuantity, WarehouseNum 
  FROM SelectedGoods t
 GROUP BY GoodsCode, GoodsShipment 
 ORDER BY WarehouseNum  ;
...
Рейтинг: 0 / 0
Сумма группы
    #38834113
пардон, ошибочка закралась. вот так оно будет правильнее:
Добрый Э - ЭхVovsla
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT GoodsCode, GoodsShipment, 
       (SELECT SUM(GoodsQuantity) FROM SelectedGoods t1 
           where t1.WarehouseNum= t.WarehouseNum and t1.GoodsCode = t.GoodsCode
       ), 
       GoodsQuantity, WarehouseNum 
  FROM SelectedGoods t
 GROUP BY GoodsCode, GoodsShipment 
 ORDER BY WarehouseNum  ;
...
Рейтинг: 0 / 0
Сумма группы
    #38834165
Vovsla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо, работает.
А можно еще сделать так чтобы в результате не выводились строки с одинаковыми "GoodsCode" и разными "WarehouseNum"?
Т.е.
GoodsCode | WarehouseNum
1108571 | 30605 - выводится
1108571 | 30605 - выводится
1108571 | 30777 - НЕ выводится
1108333 | 30605 - выводится
1108333 | 30777 - НЕ выводится
1108444 | 30777 - выводится
...
Рейтинг: 0 / 0
Сумма группы
    #38834430
Vovsla,

можно, если ты сможешь объяснить, почему в случае с GoodsCode = 1108333 ты берешь запись именно с WarehouseNum = 30605 , а не с WarehouseNum = 30777
...
Рейтинг: 0 / 0
Сумма группы
    #38834818
Vovsla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там где "GoodsCode = 1108333" можно взять "WarehouseNum = 30605" или "WarehouseNum = 30777" это не важно, главное чтобы они не выводились одновременно.
...
Рейтинг: 0 / 0
Сумма группы
    #38835653
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VovslaТам где "GoodsCode = 1108333" можно взять "WarehouseNum = 30605" или "WarehouseNum = 30777" это не важно, главное чтобы они не выводились одновременно.В таком случае, задача принципиально не решаемая.
...
Рейтинг: 0 / 0
Сумма группы
    #38836774
Vovsla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Видимо придется оставить решение этой проблемы в виде обработки массива вне SQL.
Спасибо.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Сумма группы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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