开发者

Oracle to SQLServer conversion

I have the following query in oracle so dont know how to convert into SQL Server.

WITH    start_date      AS
(
        SELECT  TO_DATE ( '01-Jan-2010'
                     开发者_运维问答   , 'DD-Mon-YYYY'
                        )       AS start_date
        FROM    dual
)
SELECT    m.task_name
,         COUNT (CASE WHEN TO_CHAR (d.task_date, 'DD') = '01' THEN 1 END)       AS Day_1
,         COUNT (CASE WHEN TO_CHAR (d.task_date, 'DD') = '02' THEN 1 END)       AS Day_2
,         COUNT (CASE WHEN TO_CHAR (d.task_date, 'DD') = '03' THEN 1 END)       AS Day_3
...
,         COUNT (CASE WHEN TO_CHAR (d.task_date, 'DD') = '31' THEN 1 END)       AS Day_31
FROM      task_master   m
JOIN      task_detail   d       ON      m.task_id       = d.task_id
JOIN      start_date    s       ON      d.task_date     >=            s.start_date
                                AND     d.task_date     < ADD_MONTHS (s.start_date, 1)
GROUP BY  m.task_name
;


Have a look at using

DATEPART to check the day of month (use d or dd)

and

CONVERT(DATETIME,'01-Jan-2010')

for the Date

and

DATEADD to add the date use DATEADD (datepart ,number,date )

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜