|
|
|
SQL запрос для возврата возвратившихся клиентов
|
|||
|---|---|---|---|
|
#18+
Необходимо составить SQL запрос, который бы возвратил клиентов (id), сделавших заказ в указанном месяце (к примеру, Октябре) и которые, при этом условии, имели заказ в течении 3-ех предыдущих месяцев (к примеру, Июль, Август, Сентябрь). К сожалению, я не могу прийти к решению, как это сделать одним запросом. Временный вариант возвращает клиентов за месяц, а потом ищет их заказы в течении 3-ех предыдущих месяцев. Упрощенная структура и запросы выглядят так: Имеются две таблицы: orders (заказы) и clients (клиенты) 1) Запрос возвращает заказы и клиентов за Октябрь 2013: Код: plsql 1. 2) После этого, я с помощью цикла php проверяю, если каждый клиент из запроса 1) в отдельности делал заказ в течении 3-ех предыдущих месяцев: Код: plsql 1. Как понимаете, это довольно длинный цикл, который делает запрос для каждого клиента в отдельности. Не могу додуматься до более элегантного решения, уверен, что существует. Как выполнить задачу одним запросом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2013, 17:28:51 |
|
||
|
SQL запрос для возврата возвратившихся клиентов
|
|||
|---|---|---|---|
|
#18+
Alexander B.Временный вариант возвращает клиентов за месяцДа ни хрена. Он возвращает ЗАКАЗЫ. Да, и клиентов тоже, но каждого столько раз, сколько у него заказов. Да и это делает через задницу. За каким хреном там ЛЕВОЕ связывание? да ещё в таком направлении? Alexander B.Как выполнить задачу одним запросом? ну типа Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2013, 18:49:05 |
|
||
|
|

start [/forum/topic.php?fid=47&gotonew=1&tid=1835686]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
27ms |
get topic data: |
6ms |
get first new msg: |
3ms |
get forum data: |
2ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 285ms |

| 0 / 0 |
