这是我的 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,那么我想将最高的 saleprice 和最低的 saleprice 加在一起,而不是把它们加在一起。希望我正在尝试做的事情是有意义的并且是明确的。
我正在使用 SQL Server 2008。