|
MySQL.RU - Webboard
Вернуться
Как можно сделать запрос в запросе в 4.0.20 (Max) 09/04/2006 - 12:52:49
Re: Как можно сделать запрос в запросе в 4.0.20 (Dinky) 10/04/2006 - 19:45:13
From: Max - 09/04/2006 - 12:52:49
Subject:Как можно сделать запрос в запросе в 4.0.20
-----------------
В очередной раз прошу помощи. Не знаю, как сделать запрос.
Суть.
Есть таблица zakaz с id заказами
zakaz_id
1
2
3
И есть таблица pay с денежными операциями по заказам вида
pay_id zakaz_id type_pay summa
1 1 1 100
2 1 2 50
3 2 1 200
4 2 1 100
И т.д. где type_pay тип операции (приход, расход и т.д.)
Задача, вывести таблицу с заказами, где будет просуммированны деньги по заказам, причем, там где не было
операций - должен быть 0
Типа
zakaz_id prihod rashod
1 100 50
2 300 0
3 0 0
Делал это в MySQL 4.1 таким образом
SELECT
zakaz.zakaz_id
,(
SELECT SUM(summa) AS summa
FROM pay
WHERE pay.zakaz_id=zak.zakaz_id AND pay.type_pay = 2
) prihod
,(
SELECT SUM(summa) AS summa
FROM $MAIN:db_payment AS pay_db
WHERE pay.zakaz_id=zakaz.zakaz_id AND pay.type_pay = 1
) rashod
FROM
zakaz
WHERE
zakaz.zakaz IN (1,2,3)
Пытаюсь тоже самое делать для MySQL 4.0
SELECT
zakaz.zakaz_id
, SUM(pay_db.summa) AS rashod
, SUM(pay_db2.summa) AS prihod
FROM
zakaz
LEFT JOIN pay AS pay_db ON pay_db.type_pay = 2
LEFT JOIN pay AS pay_db2 ON pay_db2.type_pay = 1
WHERE
zakaz.zakaz IN (1,2,3)
AND pay_db.zakaz_id=zakaz.zakaz_id
AND pay_db2.zakaz_id=zakaz.zakaz_id
GROUP BY pay_db.summa,pay_db2.summa
Казалось бы все тоже самое, но заказы, по которым не было денежных опреций обоих видов не попадают в таблицу.
Посоветуйте, что можно придумать...
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
27319
|
|