Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как правильно сгрупировать записи.  [new]
Непонятка
Guest
Есть примерно такая таблица :
startdate    | starttime  |duration | orders 
1.06.2004   | 22:00:01  | 45        |  
1.06.2004   | 22:03:05  | 156      |  слон
1.06.2004   | 23:45:43  | 454      |  заяц
2.06.2004   | 00:04:34  | 456      |
2.06.2004   | 01:45:21  | 463      |  клоун
2.06.2004   | 01:47:34  | 186      |
........................................
Надо написать запрос который группирует по дням. За каждый день показывает сумму duration (int) и кличество заказов, которые не пустые.
Что-то типа такого :

startdate | duration | orders
1.06.2004|  3546     | 2
2.06.2004|  1546     | 45
..................................

Заранее спасибо
9 июн 04, 14:57    [732033]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно сгрупировать записи.  [new]
neal
Member

Откуда: Сердце Москвы
Сообщений: 492
SELECT StartDate, Sum(Duration), Count(Orders)
FROM Tabl
GROUP BY StartDate
9 июн 04, 15:01    [732055]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно сгрупировать записи.  [new]
elephant_work
Member

Откуда: Israel
Сообщений: 110
Это будет выглядеть примерно так

select convert(varchar(10), startdate, 104), sum(duration), Count(*) from Table
group by convert(varchar(10), startdate, 104)
9 июн 04, 15:06    [732085]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно сгрупировать записи.  [new]
elephant_work
Member

Откуда: Israel
Сообщений: 110
Без Convert тоже можно но только в том случае если у тебя startdate без времени.
9 июн 04, 15:07    [732094]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно сгрупировать записи.  [new]
Непонятка
Guest
//SELECT StartDate, Sum(Duration), Count(Orders)
//FROM Tabl
//GROUP BY StartDate

Так не покатит. Мне надо, что бы в третем поле учитывались только те записи, которые не пустые (например за '1.06.2004' в итоговой таблице должно указываться только 2 заказа ('слон' и 'заяц'), а пустое поле не должно учитываться )
9 июн 04, 15:08    [732101]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно сгрупировать записи.  [new]
paparome
Member

Откуда: Москва
Сообщений: 4312
автор
Так не покатит. Мне надо, что бы в третем поле учитывались только те записи, которые не пустые (например за '1.06.2004' в итоговой таблице должно указываться только 2 заказа ('слон' и 'заяц'), а пустое поле не должно учитываться )


А оно и не будет учитываться!!!
9 июн 04, 15:13    [732128]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно сгрупировать записи.  [new]
Непонятка
Guest
paparome, там по умолчанию стоит ''. Прошу прощение, наверно неправильно сформулировал вопрос изначально.
Есть таблица :
startdate    | starttime  |duration | orders 
1.06.2004   | 22:00:01  | 45        |  ''
1.06.2004   | 22:03:05  | 156      |  слон
1.06.2004   | 23:45:43  | 454      |  заяц
2.06.2004   | 00:04:34  | 456      |   ''
2.06.2004   | 01:45:21  | 463      |  клоун
2.06.2004   | 01:47:34  | 186      |  ''
........................................
Надо написать запрос который группирует по дням. За каждый день показывает сумму duration (int) и кличество заказов, которые не равны ''.
9 июн 04, 15:16    [732152]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно сгрупировать записи.  [new]
Непонятка
Guest
Никто не поможет ? :((
9 июн 04, 15:28    [732213]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно сгрупировать записи.  [new]
Glory
Member

Откуда:
Сообщений: 104760
where orders <> ''
9 июн 04, 15:29    [732221]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно сгрупировать записи.  [new]
Непонятка
Guest
Glory ,
SELECT StartDate, Sum(Duration), Count(Orders)
FROM Tabl WHERE Orders<>''
GROUP BY StartDate

В таком случае не будет учитываться duration, когда не сделан заказ, а оно должно учитываться всегда.
9 июн 04, 15:35    [732244]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно сгрупировать записи.  [new]
(c)VIG
Member

Откуда:
Сообщений: 1507
select ...,count(nullif(orders,''))...
9 июн 04, 15:39    [732267]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно сгрупировать записи.  [new]
Непонятка
Guest
(c)VIG , спасибо. Всё работет !!!
9 июн 04, 15:48    [732332]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно сгрупировать записи.  [new]
paparome
Member

Откуда: Москва
Сообщений: 4312
Круто :)

Я бы через Sum и CASE сделал :)
9 июн 04, 15:57    [732394]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить