2017-04-19 11 views
-1

というステートメントを選択してください。私はSQLの開発者から遠いですが、いくつかの経験があり、これはかなり簡単なはずです。残りの日数を取得し、

月の残りの日数を返す以下のクエリが見つかりました。それは魅力のように働く。しかし、テーブルからデータをフェッチする単純なselectステートメントに追加しようとすると、カラムとして追加することができません。どんな助けでも大歓迎です。

私がしようとしています何
Declare @DaysLeft as INT 

;With MyCTE AS 
(
    SELECT number + 1 as 'CurrentDay' 
    FROM master..spt_values 
    WHERE type='p' 
    AND number < datepart(dd, DateAdd(day,-1,DateAdd(Month,1,DateAdd(Month, 
      DateDiff(Month, 0, GETDATE()),0)))) 
AND datename(WEEKDAY,DateAdd(Month, DateDiff(Month, 0, GETDATE()), 
            number)) not in ('Saturday','Sunday') 
) 

Select @DaysLeft = (Select COUNT(*) As MyTotal from MyCTE 
WHERE CurrentDay >= DATEPART(DD, GETDATE())) 

Select @DaysLeft as 'Remaining' 

:そこにそれは再帰CTEを使用しています

with remainingDays as (
     select dateadd(day, 1, currdate) as dte 
     from (select cast(getdate() as date) currdate) x 
     where month(dateadd(day, 1, currdate)) = month(getdate()) 
     union all 
     select dateadd(day, 1, dte) as dte 
     from remainingDays 
     where month(dateadd(day, 1, dte)) = month(getdate()) 
    ) 
select * 
from remainingDays; 

、しかし:

Select column 1, column 2 , Remaining (code from above) from TableName 
+3

全くわからないが、 '列1を選択して、最後の行を交換してみてください、列2は、TableName'から「残り」として@DaysLeft? – aucuparia

答えて

0

私は、これは月の残りの日数を取得するための簡単な方法だと思いますこのタイプの操作のためにあまりオーバーヘッドであってはなりません。

Here Rex Testerにあります。

+0

どのように私の答えを下に切り替えることができますか?私はそれを実行することができませんでした – Adam

0

ありがとうございました。とても有難い。ここに私の最後のクエリは次のとおりです。あなたがここでやろうとしているもの

Declare @DaysLeft as INT 
;With MyCTE AS 
(
    SELECT number + 1 as 'CurrentDay' 
FROM master..spt_values 
WHERE type='p' 
AND number < datepart(dd, DateAdd(day,-1,DateAdd(Month,1,DateAdd(Month, 
             DateDiff(Month, 0, GETDATE()),0)))) 
AND datename(WEEKDAY,DateAdd(Month, DateDiff(Month, 0, GETDATE()), 
            number)) not in  ('Saturday','Sunday') 
) 

Select @DaysLeft = (Select COUNT(*) As MyTotal from MyCTE 
WHERE CurrentDay >= DATEPART(DD, GETDATE())) 


SELECT column 1, column 2, @daysLeft 'remaining' 
FROM TableName 
関連する問題