私が理解している限り、最新の請求日とその請求日の年と月の組み合わせを取得しようとする SQL ビューがあります。これらの値は、その月の数量をカウントするために使用されます。
私の SQL の知識は基本的なものであり、なぜその人がこの部分を行うのかわかりません。
MAX(CONVERT(varchar(3), InvoiceDate, 101) + CONVERT(varchar(4),
YEAR(InvoiceDate))) AS YearMonth
TOP(100) PERCENT 部分などを含む残りのコードには、かなり満足しています。
問題の部分が論理的な間違いだったのか、SQL またはビジネス上の理由があるのか どうかはわかりません。場合によっては、最大請求日とは完全に異なる場合があります。
以下の完全な SQL 式:
SELECT TOP (100) PERCENT
MAX(InvoiceDate) AS MaxInvoiceDate,
StockCode, Warehouse,
MAX(CONVERT(varchar(3), InvoiceDate, 101) + CONVERT(varchar(4), YEAR(InvoiceDate))) AS YearMonth
FROM dbo.ArTrnDetail
GROUP BY StockCode, Warehouse
HAVING (Warehouse = 'CS') OR
(Warehouse = 'PS') OR
(Warehouse = 'DS') OR
(Warehouse = 'JS') OR
(Warehouse = 'JN')
ORDER BY MaxInvoiceDate DESC
そして潜在的に問題のある出力:
MaxInvoiceDate | StockCode | Warehouse | YearMonth
----------------------------------------------------------------
2013-08-21 00:00:00.000 | ACH045 | PS | 12/2012