Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Владимир09 Member Откуда: Сообщений: 9 |
Добрый день. Столкнулся с проблемой выборки данных из таблицы. А именно имеется таблица продаж назовем ее table1 в которой есть конкретное время продажи для каждого товара, мне нужно посчитать сколько продаж было за определенный промежуток времени(по месяцам, по неделям, часам, 12 часов и т.д.) за отчетный год. |
4 июн 18, 16:15 [21467193] Ответить | Цитировать Сообщить модератору |
Посетитель Member Откуда: Сообщений: 1210 |
Владимир09, и в чем же заключается проблема? |
4 июн 18, 16:18 [21467206] Ответить | Цитировать Сообщить модератору |
Владимир09 Member Откуда: Сообщений: 9 |
Не знаю, как сделать это циклично, чтобы он выдал результат за год помесячно, понедельно |
4 июн 18, 16:21 [21467218] Ответить | Цитировать Сообщить модератору |
Владимир09 Member Откуда: Сообщений: 9 |
Причем интересует только подсчет строк |
4 июн 18, 16:22 [21467223] Ответить | Цитировать Сообщить модератору |
Посетитель Member Откуда: Сообщений: 1210 |
Владимир09, group by rollup |
4 июн 18, 16:26 [21467239] Ответить | Цитировать Сообщить модератору |
Щукина Анна Member Откуда: Сообщений: 1507 |
Владимир09, Нашинковать дату на нужные компоненты (час, день, месяц, год), считать агрегаты требуемой точности по разным сочетаниям компонент при Помощи ROLLUP / cube / grouping sets |
4 июн 18, 16:26 [21467240] Ответить | Цитировать Сообщить модератору |
Владимир09 Member Откуда: Сообщений: 9 |
А не могли бы вы написать, как запрос в целом будет выглядеть? |
4 июн 18, 16:36 [21467279] Ответить | Цитировать Сообщить модератору |
Щукина Анна Member Откуда: Сообщений: 1507 |
|
||
4 июн 18, 16:38 [21467285] Ответить | Цитировать Сообщить модератору |
Посетитель Member Откуда: Сообщений: 1210 |
Владимир09, в целом запрос будет выглядеть красиво. особенно, если вы его отформатируете. странные у вас ожидания. Вам лень даже задать вопрос по форме и с примерами, а ожидаете вы при этом готовый рабочий запрос. |
4 июн 18, 16:40 [21467289] Ответить | Цитировать Сообщить модератору |
Владимир09 Member Откуда: Сообщений: 9 |
Да дело то не в лени, просто очень мало знаком еще с sql, а тем более с запросами, поэтому и прошу помощи. Книги читаю, но не получается. Уже пару месяце с этой выборкой бьюсь, а спросить не у кого. |
4 июн 18, 16:49 [21467324] Ответить | Цитировать Сообщить модератору |
Посетитель Member Откуда: Сообщений: 1210 |
Владимир09, ну почитайте про datepart(или format, если версия позволяет). group by, rollup информация доступна на оф.сайте. |
4 июн 18, 17:00 [21467378] Ответить | Цитировать Сообщить модератору |
londinium Member Откуда: Киев Сообщений: 1193 |
Похвальное упорство итак, есть такой набор данных WITH Sell (Good_ID,PaymentSum,PaymentDate) AS ( SELECT 1,50.00,'2018-02-26 15:37:00' UNION ALL SELECT 1,250.00,'2018-05-09 18:00:00' UNION ALL SELECT 100,500.00,'2017-12-31 23:59:01' ) Что Вы из него хотите? |
||
4 июн 18, 17:01 [21467384] Ответить | Цитировать Сообщить модератору |
aleks222 Member Откуда: Сообщений: 1238 |
declare @table table( dt datetime, x int) insert @table values('20180102', 1), ('20180202', 1), ('20190102', 1) ; select year = datepart(year, dt), month = datepart(month, dt), count(*) from @Table group by datepart(year, dt), datepart(month, dt); select year = datepart(year, dt), month = datepart(month, dt), count(*) from @Table group by datepart(year, dt), datepart(month, dt) with rollup; |
||||
4 июн 18, 17:03 [21467386] Ответить | Цитировать Сообщить модератору |
Владимир09 Member Откуда: Сообщений: 9 |
Спасибо большое... не совсем понятнр пока что. Буду пробовать на основе вашего запроса. |
4 июн 18, 18:15 [21467618] Ответить | Цитировать Сообщить модератору |
Посетитель Member Откуда: Сообщений: 1210 |
Владимир09, Владимир, видимо, вам не лень потратить еще пару месяцев, чтобы пробовать. Но я в очередной раз предлагаю - почитайте хотя бы конкретные темы и разберитесь в том, как работают предложенные примеры. тогда доработать их под свои нужды(добавив нужные вам уровни группировки) не составит труда. |
5 июн 18, 08:18 [21468500] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |