-
Цукор5 (11.08.09 11:47) [0]Имеется следующаю структура таблицы :
ID(генератор),CODE(код),NAME(название),NKOL(кол-во продаж),SSALE(сумма продаж),DAYSALE(дата)
Запрос по накоплениям на некоторый промежуток времени
select code,sum(nkol),sum(ssale) from таблица where daysale between :da1 and :da2 group by code
Мне же необходимо еще отобразить поле NAME. Причем, если поле NAME имело разные значения , то отобразить последнее.
Например :
1 товар1 1 1 01-01-2009
2 товар2 1 1 01-01-2009
1 проверка 2 4 02-01-2009
2 товар2 1 1 02-01-2009
После запроса необходимо видеть так :
1 проверка 3 5
2 товар2 2 2
Подскажите...как правильно составить запрос ? -
Mike Kouzmine (11.08.09 12:00) [1]используй процедуру.
-
> [0] Цукор5 (11.08.09 11:47)
> если поле NAME имело разные значения
Какой смысл у CODE(код) и NAME(название)? Какая между ними связь? Странное какое то желание. -
Цукор5 (11.08.09 12:05) [3]
> Какой смысл у CODE(код) и NAME(название)? Какая между ними
> связь? Странное какое то желание.
А чего странного ? Работали, работали...и случайно\специально поменяли название товара. Например вместо "колбасы" теперь "колбаса московская".
Или цена* увеличилась, например.
* - это поле я специально в [0] не указывал...чтобы проще было понять -
> [3] Цукор5 (11.08.09 12:05)
А справочниками не пользуешся принципиально или по каким другим мотивам? -
Цукор5 (11.08.09 12:11) [5]> Sergey13 © (11.08.09 12:09) [4]
> А справочниками не пользуешся принципиально или по каким
> другим мотивам?
Пользуюсь, но не в этой задаче. Так уж вышло. Поздно что-то менять.
Так что по сабжу ? -
см. HAVING, IN и "Подзапросы"
-
> [5] Цукор5 (11.08.09 12:11)
> Поздно что-то менять
Неужели проект коммерческий и уже установлен у миллионов пользователей?
> Например вместо "колбасы" теперь "колбаса московская".
А завтра будет "Автомобиль Бентли". Бентли оставлять или все таки колбасу? 10 Бентли за 1000 рублей - это забавно. Да и 2 колбасы за 10000000 тоже не хило. 8-)
ЗЫ: Правильно сделать никогда не поздно. И самому будет легче потом, да и риск быть побитым меньше. -
> Причем, если поле NAME имело разные значения , то отобразить
> последнее.
Не вижу в таблице поля "Дата модификации имени" (либо какого-то другого критерия временной привязки).
Отсюда следует, что постановка задачи "отобразить последнее" - решения не имеет.