Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> group by Date (по дням) 
:(
    Опции темы
uranpro
Дата 3.6.2008, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



Код

select sum(price) summ, tdate from v_cr_r 
where ...
group by tdate


мне нужно, чтобы я получал данные за день, а не за час) как это записать ?

допустим с 24.05.2008 00:00:00 по 24.05.2008 23:59:59


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
uranpro
Дата 3.6.2008, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



 smile 
 smile  smile 


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
ТоляМБА
Дата 3.6.2008, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: нет
Всего: 252



Код
select sum(price) summ, DatePart("d", tdate) as Day1
from v_cr_r
group by DatePart("d", tdate)
Ну а уж диапазон дней во where надеюсь сам поставишь какой надо  smile 

PM   Вверх
uranpro
Дата 3.6.2008, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



)))))) MS SQL Server 2005 выдал мне 31 строчку, с 1 по 31 ))))

видимо я не правильно объяснил(

в день делают много покупок в разное время:

24.05.2008 10.00.00 = 5 000
24.05.2008 10.15.00 = 6 500
24.05.2008 12.31.00 = 2 100
25.05.2008 10.30.00 = 16 000
25.05.2008 13.40.00 = 2 000

и тд.
так вот, мне нужно создать представление, которое будет отображать сумму по price в день:

24.05.2008 = 13600
25.05.2008 = 18000



входные данные: С "Date" по "Date"
выходные:
Date               Summ
24.05.2008    13600
25.05.2008    18000

Это сообщение отредактировал(а) uranpro - 3.6.2008, 15:22


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
ТоляМБА
Дата 4.6.2008, 06:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: нет
Всего: 252



uranpro, ссылка на аналогичный вопрос (там только Count а у тебя Summ) с решением.
PM   Вверх
uranpro
Дата 6.6.2008, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



там конечного результата нет(
задача не решена((( пробовал через делфи, долго запросы по дням отправляет(


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
Deniz
Дата 7.6.2008, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 1
Всего: 44



Цитата(uranpro @  6.6.2008,  19:10 Найти цитируемый пост)
там конечного результата нет(
что значит нет?
Просто тебе результат не нравится.
Ну напиши так:
Код
select cast(cast(InDate as int) as datetime), sum(SUMM)
from table
where InDate between :@DateStart and :@DateEnd
group by cast(cast(InDate as int) as datetime)



--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
uranpro
Дата 7.6.2008, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



Код

SELECT     CAST(CAST(Date AS int) AS datetime) AS Expr1, SUM(Price * Quantity - Discount) AS Summ
FROM         V_CR_R
WHERE     (Date BETWEEN '2008-05-24' AND '2008-05-26') AND (ObjID = 18)
GROUP BY CAST(CAST(Date AS int) AS datetime)


26.05.2008 = 1088792.75
25.05.2008 = 1466383.5
24.05.2008 = 61214.5

Код

select sum(price*quantity-discount) as summ
from v_cr_r
where date between '2008-05-25' and '2008-05-26' -- с 25 00:00:00 по 26 00:00:00 (т.е. сумма на 25 число)


25.05.2008 = 1112532.75

Код

select sum(price*quantity-discount) as summ
from v_cr_r
where date between '2008-05-24' and '2008-05-25' -- с 24 00:00:00 по 25 00:00:00 (т.е. сумма на 24 число)


24.05.2008 = 1503858


не работает ( 1 запрос дает ложные данные...

Это сообщение отредактировал(а) uranpro - 10.6.2008, 13:03


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
uranpro
Дата 9.6.2008, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



что, никто не знает ?(


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
Deniz
Дата 10.6.2008, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 1
Всего: 44



Цитата(uranpro @  7.6.2008,  13:20 Найти цитируемый пост)
не работает ( 1 запрос дает ложные данные... 
а откуда это известно?
А точно все поля price, quantity и discount не NULL?


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
uranpro
Дата 10.6.2008, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



точно! не пойму в чем проблема(

Добавлено через 4 минуты и 32 секунды
опа...... сори... сейчас только заметил))))) у меня пар objid не задан... [censored 6]


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
uranpro
  Дата 10.6.2008, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



уууу.... не работает, все указано(((

Добавлено @ 15:41
Код

SELECT     CAST(CAST(Date AS int) AS datetime) AS Expr1, SUM(Price * Quantity - Discount) AS Summ
FROM         dbo.V_CR_R
WHERE     (Date BETWEEN '2008-05-24' AND '2008-05-26') AND (ObjID = 18)
GROUP BY CAST(CAST(Date AS int) AS datetime)

24.05.2008    61214.5
25.05.2008    1466383.5
26.05.2008    1088792.75
неверные данные

Код

SELECT     SUM(Price * Quantity - Discount) AS summ
FROM         V_CR_R
WHERE     (Date BETWEEN CONVERT(DATETIME, '2008-05-24 00:00:00', 102) AND CONVERT(DATETIME, '2008-05-25 00:00:00', 102)) AND (ObjID = 18)
UNION
SELECT     SUM(Price * Quantity - Discount) AS summ
FROM         V_CR_R AS V_CR_R_1
WHERE     (Date BETWEEN CONVERT(DATETIME, '2008-05-25 00:00:00', 102) AND CONVERT(DATETIME, '2008-05-26 00:00:00', 102)) AND (ObjID = 18)
UNION
SELECT     SUM(Price * Quantity - Discount) AS summ
FROM         V_CR_R AS V_CR_R_2
WHERE     (Date BETWEEN CONVERT(DATETIME, '2008-05-26 00:00:00', 102) AND CONVERT(DATETIME, '2008-05-27 00:00:00', 102)) AND (ObjID = 18)

555970           26
1112532.75    25
1503858         24
это верные данные
 smile 

Это сообщение отредактировал(а) uranpro - 10.6.2008, 15:43


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
Deniz
Дата 11.6.2008, 05:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 1
Всего: 44



Проверь есть ли данные на '2008-05-25 00:00:00', '2008-05-26 00:00:00' и '2008-05-27 00:00:00'
А то в union, данные моменты времени попадает в несколько запросов
Если не поможет, сделай
Код
SELECT     CAST(CAST(Date AS int) AS datetime) AS Expr1, Date, Price * Quantity - Discount as Summ
FROM         dbo.V_CR_R
WHERE     (Date BETWEEN '2008-05-24' AND '2008-05-26') AND (ObjID = 18)
ORDER BY CAST(CAST(Date AS int) AS datetime), Date
и посмотри что получилось, может что и увидишь.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
uranpro
Дата 11.6.2008, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



не подходит(

на 00,00,00 нет данных, все с 10,00,00 до 23,00,00


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
KostaPC
Дата 18.7.2008, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



Конечно по индусски.. И тормозливо.

Код

SUBSTRING(convert(char(16), date_time_field, 120), 1,10 ) as 'Day'

PM MAIL WWW Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0582 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.