Member 11307750 Ответов: 1

Отображение дней недели


Я хочу, чтобы отобразить дни недели с датой, как это


Контракт На Полный Рабочий День FulltimeTicket_Value Повседневная
Суббота, 2018/06/09 1 500 2 3
Четверг, 2018/06/07 2 1000 1 4
Среда, 2018/06/06 0 0 0 0
Пятница, 2018/06/08 3 1500 2 2
Вторник, 2018/06/05 1 500 4 1

Что я уже пробовал:

SELECT  Date_to_Display = CAST(Time AS DATE)
     ,Fulltime       = SUM(CASE WHEN jobtype = 'fulltime' THEN 1  ELSE 0 END)
     ,FulltimeTicket_Value=SUM(CASE WHEN jobtype='fulltime' THEN 1 ELSE 0 END)*
                           MAX(CASE WHEN jobtype='fulltime' THEN Vale ELSE 0 END)
     ,Contract       = SUM(CASE WHEN jobtype = 'contract' THEN 1 ELSE 0 END)
     ,Casual         = SUM(CASE WHEN jobtype = 'casual' THEN 1 ELSE 0 END) 
FROM CanLog AS clog
WHERE Time >= '2018-02-12' and time < '2018-02-15' 
GROUP BY CAST(Time AS DATE)
ORDER BY CAST(Time AS DATE);

Mike V Baker

Итак, что вы хотите для FulltimeTicket_Value-это количество рабочих мест на полный рабочий день, умноженное на максимальный Вейл? Итак, если у вас есть 5 записей, а Долина равна 2, 3, 5, 500, 6, то вы хотите 2500, верно? Сумма * Макс или 5 * 500

1 Ответов

Рейтинг:
2

Bryian Tan

Вы можете использовать функцию SQL DATENAME, чтобы получить день недели. Вот вам пример.

DECLARE @temp TABLE (Id INT Identity(1,1), SomeDate Date)
INSERT INTO @temp 
	SELECT '2018/06/09'
	UNION
	SELECT '2018/06/07'

SELECT DATENAME(dw,SomeDate) +', ' + CONVERT(VARCHAR(10),SomeDate) 'Date_to_Display'
FROM @temp


Выход:
Date_to_Display
Суббота, 2018-06-09
Четверг, 2018-06-07