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

Откуда:
Сообщений: 4
Всем привет! Столкнулся с такой проблемой, есть у меня табличное выражение
with dateMonth as(
select '2018-03-01' as E
union
select '2018-03-02' as E
union
select '2018-03-03' as E
union
select '2018-03-04' as E
union
select '2018-03-05' as E
union
select '2018-03-06' as E
union
select '2018-03-07' as E
union
select '2018-03-08' as E
union
select '2018-03-09' as E
union
select '2018-03-10' as E
union
select '2018-03-11' as E
union
select '2018-03-12' as E
union
select '2018-03-13' as E
union
select '2018-03-14' as E
union
select '2018-03-15' as E
union
select '2018-03-16' as E
union
select '2018-03-17' as E
union
select '2018-03-18' as E
union
select '2018-03-19' as E
union
select '2018-03-20' as E
union
select '2018-03-21' as E
union
select '2018-03-22' as E
union
select '2018-03-23' as E
union
select '2018-03-24' as E
union
select '2018-03-25' as E
union
select '2018-03-26' as E
union
select '2018-03-27' as E
union
select '2018-03-28' as E
union
select '2018-03-29' as E
union
select '2018-03-30' as E
union
select '2018-03-31' as E)
)

И я пытаюсь создать запрос который будет выводить данное выражение как календарь.То есть так

| | | |2018-03-01|2018-03-02|2018-03-03|2018-03-04|
------------------------------------------------------------------------------
|2018-03-05|2018-03-06|2018-03-07|2018-03-08|2018-03-09|2018-03-10|2018-03-11|
------------------------------------------------------------------------------
|2018-03-12|2018-03-13|2018-03-14|2018-03-15|2018-03-16|2018-03-17|2018-03-18|
------------------------------------------------------------------------------
|2018-03-19|2018-03-20|2018-03-21|2018-03-22|2018-03-23|2018-03-24|2018-03-25|
------------------------------------------------------------------------------
|2018-03-26|2018-03-27|2018-03-28|2018-03-29|2018-03-30|2018-03-31|

Но к сожалению у меня это не как не выходит. Пробывал сортировать и выводить по столбцам вот так
SELECT
CASE
WHEN DATEPART(WEEKDAY,(c.E))= 1 THEN c.E end AS 'Sunday',
CASE
WHEN DATEPART(WEEKDAY,(c.E))= 2 THEN c.E end AS 'Monday',
CASE
WHEN DATEPART(WEEKDAY,(c.E))= 3 THEN c.E end AS 'Tuesday',
CASE
WHEN DATEPART(WEEKDAY,(c.E))= 4 THEN c.E end AS 'Wednesday',
CASE
WHEN DATEPART(WEEKDAY,(c.E))= 5 THEN c.E end AS 'Thursday',
CASE
WHEN DATEPART(WEEKDAY,(c.E))= 6 THEN c.E end AS 'Friday',
CASE
WHEN DATEPART(WEEKDAY,(c.E))= 7 THEN c.E end AS 'Saturday'

FROM dateMonth c

В результате куча значений null от которых не понятно как избавится. С фильтром IS NOT NULL вообще ничего не выводится.Больше идей не каких нет((( Кто знает подскажите плиз,Любые идеи,как это можно сделать.

К сообщению приложен файл. Размер - 9Kb
29 окт 18, 10:06    [21717693]     Ответить | Цитировать Сообщить модератору
 Re: Плиииз помогите написать запрос  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
sashka1998
В результате куча значений null от которых не понятно как избавится
Тупо в лоб:
SELECT
	max(CASE WHEN DATEPART(WEEKDAY,(c.E))= 1 THEN c.E end) AS 'Sunday',
	max(CASE WHEN DATEPART(WEEKDAY,(c.E))= 2 THEN c.E end) AS 'Monday',
	max(CASE WHEN DATEPART(WEEKDAY,(c.E))= 3 THEN c.E end) AS 'Tuesday',
	max(CASE WHEN DATEPART(WEEKDAY,(c.E))= 4 THEN c.E end) AS 'Wednesday',
	max(CASE WHEN DATEPART(WEEKDAY,(c.E))= 5 THEN c.E end) AS 'Thursday',
	max(CASE WHEN DATEPART(WEEKDAY,(c.E))= 6 THEN c.E end) AS 'Friday',
	max(CASE WHEN DATEPART(WEEKDAY,(c.E))= 7 THEN c.E end) AS 'Saturday'
FROM dateMonth c
group by DATEPART(WEEK,(c.E))
29 окт 18, 10:18    [21717706]     Ответить | Цитировать Сообщить модератору
 Re: Плиииз помогите написать запрос  [new]
sashka1998
Member

Откуда:
Сообщений: 4
alexeyvg,Так просто.Как же я сам до этого не додумался. Большое спасибо.
29 окт 18, 10:26    [21717721]     Ответить | Цитировать Сообщить модератору
 Re: Плиииз помогите написать запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
Вот, помнится, тема была:

https://www.sql.ru/forum/519478/kalendar-nyneshnego-mesyaca
29 окт 18, 10:30    [21717727]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить