DECLARE @from_date DATETIME,
@Monthnos INT
SET @From_Date='2016-04-01'
SET @Monthnos=1
SELECT dmcode,
CASE
WHEN entitystatus IN ('Active')
AND CONVERT(DATE, codedate, 103) BETWEEN Dateadd(dd, Datediff(dd,
Datepart(dd,
Dateadd(m, monthnos,
@from_date)), 1),
Dateadd(m, monthnos, @from_date))
AND
Dateadd(dd, Datediff(dd,
Datepart(
dd,
Dateadd(m, monthnos,
@from_date)), 0),
Dateadd
(m, monthnos, @from_date)
) THEN
Sum(agentpartyid)
END AS ActiveCount,
CASE
WHEN entitystatus IN ('Inactive', 'Suspend')
AND CONVERT(DATE, codedate, 103) = Dateadd(dd, Datediff(dd,
Datepart(dd,
Dateadd(m, monthnos
,
@from_date)), 0),
Dateadd(m, monthnos, @from_date))
THEN Sum(agentpartyid)
END AS InActiveCount
FROM cms_v_agency_dump_master AD WITH (nolock)
INNER JOIN #branch_mom BM WITH (nolock)
ON AD.dmcode = BM.dm_code
GROUP BY dmcode,
entitystatus,
CONVERT(DATE, codedate, 103),
monthnos
私は上記のクエリを持っています。アクティブなエージェントの数とコーディング日付は、毎月のfirst_dayと最後の日の間に必要です。非アクティブまたは中断してから、毎月の最終日に等しい。 ここでMonthnosは財務月です(月が4月の場合はmonthnos = 1、4月の場合はmonthnos = 2のようになります)。 だから、どうすればこれをSQLで実現できますか????SQLで毎月の初日を選択するには
ありがとうございます。あなたはDATETIMEフィールドがmonthnos
であると仮定すると、唯一の毎月1日の間で照会したい場合は
[悪い習慣から:日付/時刻操作で短縮形を使用する - Aaron Bertrand](http://sqlblog.com/blogs/aaron_bertrand/archive/2011/09/20/bad-habits-to-kick-using -shorthand-with-date-time-operations.aspx) – SqlZim