-
Нужно выдать сумму за каждый день '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' и получается, что группировка по дате не происходит.
-
группировать можно и по результату функции/выражению...
-
MS SQL может группировать по выражению GROUP BY [ ALL ] group_by_expression [ ,...n ]
[ WITH
-
можно какой-то конкретный пример?
-
GROUP BY (Integer(SQRT(Fld)*1.2)
-
спасибо, я думал вы пример выражения с группировкой по дате приведёте
-
а я думал ты в справку посмотришь... похоже мы оба ошибались.
-
SELECT count(*), CAST(FLOOR( CAST( [ditetimefield] AS FLOAT )) AS DATETIME) FROM [table] group by CAST(FLOOR( CAST( [ditetimefield] AS FLOAT )) AS DATETIME)
-
> sniknik © (20.04.12 11:04) [6] > > а я думал ты в справку посмотришь... похоже мы оба ошибались. >
Там ответа на конкретно его вопрос нет ;-)
-
Плохиш, спасибо Вам
-
вообще-то есть... а если версия mssql у него 2008 (может и раньше, но не в 2000м точно), то и без "твоих" извращений из [7]. пример с 1 простым cast-ом.
-
> спасибо, я думал вы пример выражения с группировкой по дате > приведёте
Я привел пример более сложного выражения и более универсальный, а привести DateTime к более простой форме ума много не надо. А если MS SQL у тебя 2008 то совсем просто. Ты благодари бога, что тебя не отругали за неполную информацию об условия применения, в соответствующем форуме ты бы этого не избежал.
-
Пример из [7] это тоже пример мощи TSQL
-
К инту закасиуй
-
> К инту закасиуй
Отставить. Через Floor надоЮ да. А в новых версиях вроде date появился, не?
|