![]() |
|
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) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |