Конференция "Начинающим" » сложности с запросом [D7, FireBird1.5]
 
  • Цукор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]
    используй процедуру.
  • Sergey13 © (11.08.09 12:00) [2]
    > [0] Цукор5   (11.08.09 11:47)
    > если поле NAME имело разные значения

    Какой смысл у CODE(код) и NAME(название)? Какая между ними связь? Странное какое то желание.
  • Цукор5 (11.08.09 12:05) [3]

    > Какой смысл у CODE(код) и NAME(название)? Какая между ними
    > связь? Странное какое то желание.


    А чего странного ? Работали, работали...и случайно\специально поменяли название товара. Например вместо "колбасы" теперь "колбаса московская".
    Или цена* увеличилась, например.  
    * - это поле я специально в [0] не указывал...чтобы проще было понять
  • Sergey13 © (11.08.09 12:09) [4]
    > [3] Цукор5   (11.08.09 12:05)

    А справочниками не пользуешся принципиально или по каким другим мотивам?
  • Цукор5 (11.08.09 12:11) [5]
    > Sergey13 ©   (11.08.09 12:09) [4]

    > А справочниками не пользуешся принципиально или по каким
    > другим мотивам?


    Пользуюсь, но не в этой задаче. Так уж вышло. Поздно что-то менять.
    Так что по сабжу ?
  • MsGuns © (11.08.09 12:27) [6]
    см. HAVING, IN и "Подзапросы"
  • Sergey13 © (11.08.09 12:55) [7]
    > [5] Цукор5   (11.08.09 12:11)
    > Поздно что-то менять

    Неужели проект коммерческий и уже установлен у миллионов пользователей?

    > Например вместо "колбасы" теперь "колбаса московская".
    А завтра будет "Автомобиль Бентли". Бентли оставлять или все таки колбасу? 10 Бентли за 1000 рублей - это забавно. Да и 2 колбасы за 10000000 тоже не хило. 8-)

    ЗЫ: Правильно сделать никогда не поздно. И самому будет легче потом, да и риск быть побитым меньше.
  • Ega23 © (11.08.09 13:00) [8]

    > Причем, если поле NAME имело разные значения , то отобразить
    > последнее.


    Не вижу в таблице поля "Дата модификации имени" (либо какого-то другого критерия временной привязки).
    Отсюда следует, что постановка задачи "отобразить последнее" - решения не имеет.
 
Конференция "Начинающим" » сложности с запросом [D7, FireBird1.5]
Есть новые Нет новых   [134477   +38][b:0][p:0.001]