
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
06.10.2016, 11:09
|
|||
|---|---|---|---|
|
|||
Одним запросом - реально? |
|||
|
#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, 12:40
|
|||
|---|---|---|---|
|
|||
Одним запросом - реально? |
|||
|
#18+
Уж не знаю, насколько верное решение принял... Внес некоторую избыточность в БД - в баланс добавил поле "цена продажи"... В этом случае одним запросом сумел реализовать задачу! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.10.2016, 16:17
|
|||
|---|---|---|---|
Одним запросом - реально? |
|||
|
#18+
Тупой!Есть ли возможность решить задачу изящно - одним запросом?Не вижу противнопоказаний. Если приведёшь в порядок структуру. Тупой!Внес некоторую избыточность в БДОна у тебя и так избыточна. Более того, потенциально противоречива. Не вижу никаких ограничений, которые могут запретить мне внести новую запись в balance такую, что разность между этой и предыдущей записью по количеству не будет соответствовать суммарному количеству из order_history за тот же период. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&mobile=1&tid=1831348]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
164ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 463ms |

| 0 / 0 |
