|
|
|
Одним запросом - реально?
|
|||
|---|---|---|---|
|
#18+
Добрый день, Господа! Подскажите, как рационально решить следующую задачу... Имеются три таблицы: товары (их реально немного, где-то 60-80 штук), история продаж и остатки... В упрощенном виде структура следующая: goods : id name order_history : id s_date good_id price balance : id s_date order_id count Все три таблицы связаны по ID (goods.id - order_history.good_id, order_history.id - balance.order_id). Задача - на любую произвольную дату получить суммовой остаток всех товаров! То есть на каждый товар я должен получить ближайшую по дате запись из баланса и истории продаж (из баланса соответственно количество, из истории продаж - цену). Понятно, что можно в цикле перебирать все товары по ID и в каждой итерации выполнять SQL запрос, но как то это... не нравится мне такой вариант! :) Есть ли возможность решить задачу изящно - одним запросом? Буду благодарен за любые идеи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2016, 11:09 |
|
||
|
Одним запросом - реально?
|
|||
|---|---|---|---|
|
#18+
Уж не знаю, насколько верное решение принял... Внес некоторую избыточность в БД - в баланс добавил поле "цена продажи"... В этом случае одним запросом сумел реализовать задачу! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2016, 12:40 |
|
||
|
Одним запросом - реально?
|
|||
|---|---|---|---|
|
#18+
Тупой!Есть ли возможность решить задачу изящно - одним запросом?Не вижу противнопоказаний. Если приведёшь в порядок структуру. Тупой!Внес некоторую избыточность в БДОна у тебя и так избыточна. Более того, потенциально противоречива. Не вижу никаких ограничений, которые могут запретить мне внести новую запись в balance такую, что разность между этой и предыдущей записью по количеству не будет соответствовать суммарному количеству из order_history за тот же период. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2016, 16:17 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39322091&tid=1831348]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
78ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 399ms |

| 0 / 0 |
