トランザクション情報を調べるクエリを作成しました。期間基準は条件付きです。月の 5 日に、前月の 16 日から最後の日までを調べる必要があります。その月の 20 日に、同じ月の 1 日から 15 日を調べる必要があります。自動的に実行されます。Stack Overflow のすばらしい紳士または女性が、使用する次のストアド プロシージャを提供してくれました。これは完全に機能しました。
DECLARE @today SMALLDATETIME, @start SMALLDATETIME, @end SMALLDATETIME;
SET @today = DATEADD(DAY, 0, DATEDIFF(DAY, 0, CURRENT_TIMESTAMP));
SET @start = DATEADD(DAY, 1-DAY(@today), @today);
SET @end = DATEADD(DAY, 15, @start);
IF DATEPART(DAY, @today) <= 15
BEGIN
SET @start = DATEADD(MONTH, -1, @end);
SET @end = DATEADD(DAY, 1-DAY(@today), @today);
END
SELECT ... WHERE h.billed_date >= @start AND h.billed_date < @end;
現在、これをサードパーティのデータ統合ツールからアクセスできるビューに変換したいと考えています。Google によると、ビューは SQL Server のストアド プロシージャを呼び出せないとのことです。彼らの DBA は、クエリ全体をストアド プロシージャに変換することもできると述べました。データ統合ツールからアクセスできるように、クエリを SP に変換するにはどうすればよいですか? これは、クエリの簡略化されたバージョンです。
SELECT
c.customer_name
, cc.category_name
, h.acct_bal
FROM
customer c
inner join htransactions h on c.customer_id = h.customer_id
left outer join customer_category cc on cc.category_id = c.category_id
WHERE
h.billed date >= @start
AND h.billed date < @end
ありがとう。私はビジネス アナリストで、SQL のスキルを向上させようとしています。私の基本的なクエリ SQL は強化されています。変数とストアド プロシージャについてさらに学習する必要があります。