Конференция "Базы" » Формирование запроса без учёта времени [D7, MSSQL]
 
  • dmitry1208197320 © (20.04.12 10:12) [0]
    Нужно выдать сумму за каждый день 'closetime' по полю 'total'.

    Делаю запрос типа:

    select closetime, sum(total) from _bill where (closetime >= '2012-04-10') and (closetime <= '2012-04-11') group by closetime

    но в таблице'_bill' значения поля 'closetime' содержат как дату, так и время,при чём время разное, например:
    '2012-04-10 02:05:23'
    '2012-04-10 04:10:20'
    и получается, что группировка по дате не происходит.
  • sniknik © (20.04.12 10:19) [1]
    группировать можно и по результату функции/выражению...
  • Anatoly Podgoretsky © (20.04.12 10:23) [2]
    MS SQL может группировать по выражению
    GROUP BY [ ALL ] group_by_expression [ ,...n ]
       [ WITH { CUBE | ROLLUP }

  • dmitry1208197320 © (20.04.12 10:37) [3]
    можно какой-то конкретный пример?
  • Anatoly Podgoretsky © (20.04.12 10:54) [4]
    GROUP BY (Integer(SQRT(Fld)*1.2)
  • dmitry1208197320 © (20.04.12 10:59) [5]
    спасибо, я думал вы пример выражения с группировкой по дате приведёте
  • sniknik © (20.04.12 11:04) [6]
    а я думал ты в справку посмотришь... похоже мы оба ошибались.
  • Плохиш © (20.04.12 11:07) [7]

    SELECT count(*), CAST(FLOOR( CAST( [ditetimefield] AS FLOAT )) AS DATETIME) FROM [table] group by CAST(FLOOR( CAST( [ditetimefield] AS FLOAT )) AS DATETIME)

  • Плохиш © (20.04.12 11:10) [8]

    > sniknik ©   (20.04.12 11:04) [6]
    >
    > а я думал ты в справку посмотришь... похоже мы оба ошибались.
    >

    Там ответа на конкретно его вопрос нет ;-)
  • dmitry1208197320 © (20.04.12 11:21) [9]
    Плохиш, спасибо Вам
  • sniknik © (20.04.12 11:22) [10]
    вообще-то есть... а если версия mssql у него 2008 (может и раньше, но не в 2000м точно), то и без "твоих" извращений из [7].
    пример с 1 простым cast-ом.
  • Anatoly Podgoretsky © (20.04.12 11:41) [11]

    > спасибо, я думал вы пример выражения с группировкой по дате
    > приведёте

    Я привел пример более сложного выражения и более универсальный, а привести DateTime к более простой форме ума много не надо. А если MS SQL у тебя 2008 то совсем просто. Ты благодари бога, что тебя не отругали за неполную информацию об условия применения, в соответствующем форуме ты бы этого не избежал.
  • Anatoly Podgoretsky © (20.04.12 11:43) [12]
    Пример из [7] это тоже пример мощи TSQL
  • Ega23 © (20.04.12 13:47) [13]
    К инту закасиуй
  • Ega23 © (20.04.12 13:49) [14]

    > К инту закасиуй


    Отставить. Через Floor надоЮ да.
    А в новых версиях вроде date появился, не?
 
Конференция "Базы" » Формирование запроса без учёта времени [D7, MSSQL]
Есть новые Нет новых   [134431   +9][b:0][p:0.001]