Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 группировка по датам  [new]
Volodya
Member

Откуда:
Сообщений: 450
Доброго времени суток!
имеется запрос:
select convert(varchar(10), t.date, 103), 
	isnull(horo_suma, 0) + isnull(weather_suma, 0)  as summary
	, horo_suma, weather_suma
  from t_dates t
	left join @horo  t1 on convert(varchar(10), t.date, 103) = t1.dt
	left join @weather  t2 on convert(varchar(10), t.date, 103) = t2.dt
where t.date between  @stdate  and  @enddate  

В таблицу t_dates занесены последовательно идущие даты.
При выполнение запроса в резалтсете появляется две строки для некоторых дат. Что нужно добавить/убавить чтобы в резалтсете для каждой даты была только одна строка?
13 сен 11, 13:25    [11268928]     Ответить | Цитировать Сообщить модератору
 Re: группировка по датам  [new]
Glory
Member

Откуда:
Сообщений: 104751
Volodya
При выполнение запроса в резалтсете появляется две строки для некоторых дат. Что нужно добавить/убавить чтобы в резалтсете для каждой даты была только одна строка?

И какая из строк должна будет остататься ?
13 сен 11, 13:29    [11268983]     Ответить | Цитировать Сообщить модератору
 Re: группировка по датам  [new]
Volodya
Member

Откуда:
Сообщений: 450
одна строка, содержащая данные из обеих присоединенных таблиц
13 сен 11, 13:31    [11269005]     Ответить | Цитировать Сообщить модератору
 Re: группировка по датам  [new]
Volodya
Member

Откуда:
Сообщений: 450
select convert(varchar(10), t.date, 103), 
	isnull(t1.horo_suma, 0) + isnull(t2.weather_suma, 0)  as summary
	, t1.horo_suma, t2.weather_suma
  from t_dates t
	left join @horo  t1 on convert(varchar(10), t.date, 103) = t1.dt
	left join @weather  t2 on convert(varchar(10), t.date, 103) = t2.dt
where t.date between  @stdate  and  @enddate 
13 сен 11, 13:34    [11269041]     Ответить | Цитировать Сообщить модератору
 Re: группировка по датам  [new]
Volodya
Member

Откуда:
Сообщений: 450
сейчас вот так:
(No column name) summary horo_suma weather_suma
24/08/2011 4.00 2.00 2.00
26/08/2011 24.00 12.00 12.00
13/09/2011 0.50 0.50 NULL
13/09/2011 1.50 NULL 1.50


а должно быть так:
(No column name) summary horo_suma weather_suma
24/08/2011 4.00 2.00 2.00
26/08/2011 24.00 12.00 12.00
13/09/2011 2.00 0.50 1.50
13 сен 11, 14:30    [11269525]     Ответить | Цитировать Сообщить модератору
 Re: группировка по датам  [new]
Volodya
Member

Откуда:
Сообщений: 450
Нашел ответ... нужно было добавить

group by convert(varchar(10), t.date, 103)

И еще вопрос - как правильно отсортировать по возрастанию по convert(varchar(10), t.date, 103)

сейчас сортирует так

13/09/2011
24/08/2011
26/08/2011
13 сен 11, 14:49    [11269718]     Ответить | Цитировать Сообщить модератору
 Re: группировка по датам  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
Volodya
И еще вопрос - как правильно отсортировать по возрастанию по convert(varchar(10), t.date, 103)

сейчас сортирует так

13/09/2011
24/08/2011
26/08/2011
У вас как раз правильно отсортировано по возрастанию по convert(varchar(10), t.date, 103)

А вообще для сортировки нужно в конце запроса написать
order by <поля для сортировки>
13 сен 11, 15:13    [11269950]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить