|
Сумма группы
|
|||
---|---|---|---|
#18+
Есть таблица "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 распространяется на все последующие строки. Как построить запрос чтобы сумма этой группы указывалась для каждой строчки отдельно? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2014, 13:39 |
|
Сумма группы
|
|||
---|---|---|---|
#18+
Vovsla, как минимум - нужно указать связь между внешним запросом и вложенным подзапросом. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2014, 13:52 |
|
Сумма группы
|
|||
---|---|---|---|
#18+
Vovsla, путем добавления условия WHERE в подзапрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2014, 13:57 |
|
Сумма группы
|
|||
---|---|---|---|
#18+
Vovsla Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2014, 14:02 |
|
Сумма группы
|
|||
---|---|---|---|
#18+
пардон, ошибочка закралась. вот так оно будет правильнее: Добрый Э - ЭхVovsla Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2014, 14:04 |
|
Сумма группы
|
|||
---|---|---|---|
#18+
Большое спасибо, работает. А можно еще сделать так чтобы в результате не выводились строки с одинаковыми "GoodsCode" и разными "WarehouseNum"? Т.е. GoodsCode | WarehouseNum 1108571 | 30605 - выводится 1108571 | 30605 - выводится 1108571 | 30777 - НЕ выводится 1108333 | 30605 - выводится 1108333 | 30777 - НЕ выводится 1108444 | 30777 - выводится ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2014, 14:51 |
|
Сумма группы
|
|||
---|---|---|---|
#18+
Vovsla, можно, если ты сможешь объяснить, почему в случае с GoodsCode = 1108333 ты берешь запись именно с WarehouseNum = 30605 , а не с WarehouseNum = 30777 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2014, 17:56 |
|
Сумма группы
|
|||
---|---|---|---|
#18+
Там где "GoodsCode = 1108333" можно взять "WarehouseNum = 30605" или "WarehouseNum = 30777" это не важно, главное чтобы они не выводились одновременно. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2014, 11:14 |
|
Сумма группы
|
|||
---|---|---|---|
#18+
VovslaТам где "GoodsCode = 1108333" можно взять "WarehouseNum = 30605" или "WarehouseNum = 30777" это не важно, главное чтобы они не выводились одновременно.В таком случае, задача принципиально не решаемая. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2014, 06:32 |
|
|
start [/forum/topic.php?fid=54&msg=38834105&tid=2008725]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 267ms |
total: | 403ms |
0 / 0 |