Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




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, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
27319



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |