|
|
|
Помогите с запросом (вывод суммы)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. помогите составить запрос. Есть таблица Дата (Date) Date 2005-01-01 2005-01-02 2005-01-03 2005-01-04 ...... Есть таблица Заказы (zakaz) __id__|__date___|__zakaz__ __1__|2005-01-01|заказ1 __2__|2005-01-01|заказ2 __3__|2005-01-03|заказ3 __4__|2005-01-05|заказ4 __5__|2005-01-06|заказ5 __6__|2005-01-06|заказ6 ...... Есть таблица Метры, в которой стоят метры к конкретным заказам (metr) __id__|_id_zakaz_|metr __1__|__2_______|_34_ __2__|__4_______|_10_ __3__|__6_______|_15_ и есть таблица VIP заказов, в которой показаны, какие заказы VIP __id__|_id_zakaz_|_vip_ __1__|__2_______|_yes_ __2__|__4_______|_yes_ __3__|__6_______|_yes_ Стоит задача, показать, сколько заказов на каждый день и сколько метров на каждый день без учета метров VIP заказов. Я могу сделать запрос, который возвратит кол-во заказо и кол-во метров на каждый день. но как сделать так, что бы он возвращал сумму только не VIP запросов. а кол-во заказов выводил с VIP заказами не могу понять. =((( SELECT distinct(date.date) as alldate, count(zakaz.zakaz) as vsego, sum(metr.metr) as metr, FROM date left join zakaz on date.date=zakaz.date left join metr on (zakaz.id=metr.id_zakaz ) where MONTH(date.date)=4 AND YEAR(date.date)=2005 group by alldate Друзья, помогите пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2005, 11:47 |
|
||
|
Помогите с запросом (вывод суммы)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2005, 11:57 |
|
||
|
Помогите с запросом (вывод суммы)
|
|||
|---|---|---|---|
|
#18+
Спасибо большое, но... К сожалению, этот запрос не считает все заказы(вместе с VIP) на каждый день. Например, если на 1 число есть 2 заказа, один (vip) на 20 метров, второе (простой) на 10 метров, то запрос выдает кол-во метров правильное (10 метров, без учета метража VIP заказа) , а кол-во заказов неправильно ( выдает 1, а должно быть 2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2005, 12:02 |
|
||
|
Помогите с запросом (вывод суммы)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2005, 13:04 |
|
||
|
Помогите с запросом (вывод суммы)
|
|||
|---|---|---|---|
|
#18+
Спасибо, показывает 2 заказа (вместе с VIP - это правильно), однако сумма метров стоит 0 (Нуль) Если ставить SUM(metr.metr*(vip.vip='yes')) то выводит только сумму на VIP заказы Скажите пожалуйста. а как работает это выражение SUM(metr.metr*(vip.vip<>'yes')) ??? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2005, 15:29 |
|
||
|
Помогите с запросом (вывод суммы)
|
|||
|---|---|---|---|
|
#18+
Скажите пожалуйста. а как работает это выражение SUM(metr.metr*(vip.vip<>'yes')) ??? Очень просто. Значение выражения (vip.vip<>'yes') равно 0, если ложь (условие не выполняется); и равно 1, если истина (выполняется). Об этом можно спокойно почитать в базовой документации. Твоя проблема, видимо, связана с тем, что в поле vip может быть либо 'yes' либо null. Тогда либо добавь в выражение проверку на null, либо прописывай что-нибудь (напр. 'no', по DEFAULT значению). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2005, 17:17 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=33015407&tid=1854149]: |
0ms |
get settings: |
13ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
95ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 417ms |

| 0 / 0 |
