|
v7: Подскажите с отчетом |
☑ |
0
AntiBuh
20.03.12
✎
18:11
|
Ступор какой-то напал
имеется скл таблица с полями Дата типа DATETIME и Сумма
нужно посчитать сколько определенных сумм попадает в интервалы времени за каждую дату
например:
сумма < 100
20.03.2011
0:00-1:00 3 раза
1:00-2:00 5 раз
....
подскажите алгоритм
реально затупил :(
|
|
1
viktor_vv
20.03.12
✎
18:24
|
Дату и время приводишь к началу интервала и Group by по этому полю с Count.
Привести можно convert из DateTime в строку с обрезанием.
Ну это так навскидку.
|
|
2
AntiBuh
20.03.12
✎
18:36
|
ясно, спасибо
|
|
3
AntiBuh
21.03.12
✎
08:39
|
Вроде получилось
select DatePart(hh, CloseDate) as Hr, Count(BaseSum) as AllSum Count(BaseSum) if BaseSum < 150 as Summa
from tab
WHERE (CloseDate >= CONVERT(DATETIME, '2012-03-20 00:00:00', 102))
Group By DatePart(hh, CloseDate)
вот еще бы чтоб посчиталось количество с условием
типа такого: Count(BaseSum) if BaseSum < 150 as ...
как правильно написать?
|
|
4
Ёпрст
гуру
21.03.12
✎
08:41
|
case
|
|
5
viktor_vv
21.03.12
✎
08:55
|
(3) Только в таком варианте значения из одного интервала по часам, но в разных датах попадут в одну строку.
|
|
6
AntiBuh
21.03.12
✎
08:58
|
(4) а так разве не в один столбец результат попадет?
(5) по датам я разобью
|
|
7
Ёпрст
гуру
21.03.12
✎
08:59
|
(6) че ?
|
|
8
Ёпрст
гуру
21.03.12
✎
09:00
|
если нужно результать порезать - тогда having используй
|
|
9
Ёпрст
гуру
21.03.12
✎
09:00
|
если тупо в селекте - тогда case
|
|
10
AntiBuh
21.03.12
✎
09:05
|
Нужно общее Количество посчитать и с условием
чтоб в одной строке было 2 разных колонки
|
|
11
Ёпрст
гуру
21.03.12
✎
09:06
|
(10) ну и пиши case для второй колонки
|
|
12
AntiBuh
21.03.12
✎
12:27
|
(11) Типа такого?
select DatePart(dd, CloseDate) as D, DatePart(hh, CloseDate) as Hr, Count(BaseSum) as AllSumma ,
case
When BaseSum < 150 Then Count(BaseSum)
End
from Checks
WHERE (CloseDate >= CONVERT(DATETIME, '2012-03-20 00:00:00', 102)) And (CloseDate <= CONVERT(DATETIME, '2012-03-21 00:00:00', 102))
Group By DatePart(dd, CloseDate),DatePart(hh, CloseDate)
|
|