0

最新の日付値のみを選択する方法を理解しようとして、壁にぶつかっています

SELECT TOP (100) PERCENT 
    dbo.StockStatusHistory.StockID AS Expr1, 
    dbo.Stock.StockNo, dbo.CardFile.CardName AS SalesPerson, 
    dbo.Stock.Description, dbo.Stock.Retail, 
    dbo.Stock.SaleOrderDate, dbo.Stock.WarrantyStartDate, dbo.Stock.SaleNotes, 
    dbo.Stock.ManuMonth, dbo.Stock.ManuYear, dbo.Stock.InspCertDate, 
    dbo.Stock.StockStatus, dbo.StockStatusHistory.NewStockStatus, 
    dbo.StockStatusHistory.ChangeDate AS Expr2, 
    dbo.StockStatusHistory.ID, dbo.CardFile.CardId, 
    dbo.Stock.SalesPersonId
FROM
    dbo.Stock 
INNER JOIN
    dbo.CardFile ON dbo.Stock.SalesPersonId = dbo.CardFile.CardId 
INNER JOIN
    dbo.StockStatusHistory ON dbo.Stock.StockId = dbo.StockStatusHistory.StockID
WHERE     
    (dbo.Stock.StockStatus = 30) AND (dbo.Stock.WarrantyStartDate >= { fn CURDATE() }) 
    AND (dbo.StockStatusHistory.NewStockStatus = 30) 
    OR (dbo.Stock.StockStatus = 30) AND (dbo.Stock.WarrantyStartDate IS NULL) 
    AND (dbo.StockStatusHistory.NewStockStatus = 30)

使ってみMAX(dbo.StockStatusHistory.StockID)ましたがエラーが出ました。

私のコードが理にかなっていることを願っています。明らかにSQLクエリは初めてです。

前もってありがとうアンディ

4

1 に答える 1