Конференция "Базы" » Вопрос по SQL [D7, MSSQL]
 
  • lewka © (26.03.15 15:59) [0]
    Всем привет. Есть запрос

    select min(sp_ls.mnn),
          min (sp_ls.tr_nm) ,
          count ( full_orders.id_ls),
          sum(full_orders.na_mes)
    from  full_orders , sp_ls  
    where Full_orders.Код in (397,938,940)
    and full_orders.id_ls=sp_ls.код
    group by  sp_ls.tr_nm


    Подскажите почему не считается сумма
    sum(full_orders.na_mes)

    . Выдает значение 0.5
  • sniknik © (26.03.15 16:05) [1]
    > Подскажите почему не считается сумма sum(full_orders.na_mes). Выдает значение 0.5
    считается, раз значение выдает, значит считается. не устраивает значение? - поменяй условие "по вкусу".
  • sniknik © (26.03.15 16:06) [2]
    > поменяй условие "по вкусу"
    желательно на более очевидные "джойны" с неявных объединений условием.
  • junglecat © (26.03.15 16:12) [3]
    > Выдает значение 0.5

    а сколько должно? 0.7? или литр?
  • кгшзх © (26.03.15 21:33) [4]
    select *
            /*
          min(sp_ls.mnn),
          min (sp_ls.tr_nm) ,
          count ( full_orders.id_ls),
          sum(full_orders.na_mes)
         */
    from  full_orders , sp_ls  
    where Full_orders.Код in (397,938,940)
    and full_orders.id_ls=sp_ls.код
    /* group by  sp_ls.tr_nm */


    а дальше карандаш в руки и считать столбиком.
  • кгшзх © (26.03.15 21:36) [5]
    а нафига группировать, если здесь все агрегаты посчитаются по всей вообще выборке, а не по группам?
  • Кщд © (27.03.15 17:59) [6]
    >кгшзх ©   (26.03.15 21:36) [5]
    или вы владеете информацией о содержимом этих таблиц, или Вас ввёл в заблуждение: "min (sp_ls.tr_nm)"
    агрегаты посчитаются по всем разным sp_ls.tr_nm
  • кгшзх © (27.03.15 18:14) [7]
    агрегаты посчитаются по всем разным sp_ls.tr_nm

    Ага. "В вашем доме будет играть музыка, но вы ее не услышите"

    Даже если посчитает по группам, то челу придется догадываться к какой группе относится кажная строка с агрегатами. потому что самого группирующего поля в списке селекта нетути.

    select min(sp_ls.mnn),
         min (sp_ls.tr_nm) ,
         count ( full_orders.id_ls),
         sum(full_orders.na_mes)
  • Кщд © (28.03.15 16:59) [8]
    >кгшзх ©   (27.03.15 18:14) [7]
    есть же: min (sp_ls.tr_nm)
 
Конференция "Базы" » Вопрос по SQL [D7, MSSQL]
Есть новые Нет новых   [134427   +34][b:0][p:0.001]