ここに私の SELECT ステートメントの小さなスニペットがあります:
SELECT CASE WHEN I.IsSimCheckout=1 THEN
SUM(DISTINCT SalePrice) ELSE SUM(SalePrice) END
FROM InvoiceDetail TD WHERE TD.InvoiceID = D.InvoiceID
私がやろうとしていることはこれです:
SELECT CASE WHEN I.IsSimCheckout=1 THEN
SUM(TOP 1 SalePrice ORDER BY SalePrice) + SUM(TOP 1 SalePrice ORDER BY SalePrice DESC) ELSE SUM(SalePrice) END
FROM InvoiceDetail TD WHERE TD.InvoiceID = D.InvoiceID
明らかに、後者の SQL がコンパイルされないことはわかっています。しかし基本的に、私がやろうとしているのは、I.IsSimCheckout が 1 の場合、すべてを合計するのではなく、最高の販売価格と最低の販売価格を足し合わせることです。うまくいけば、私がやろうとしていることは意味があり、明確です.
SQL Server 2008 を使用しています。