我有一個表,其中我列SUM其中一列「金額」。然後我想從中減去一個特定的數字,然後用CASE THEN創建另一個列。我可以在while循環中用if來成功執行它,但客戶端希望能夠對結果進行排序。我並不擅長查詢,但試圖學習。以下是我在這裏查看所有問題的想法。這會工作嗎?SQL CASE THEN語句
SELECT
accountNumber,
accountName,
sectorID,
territoryID,
regionID,
SUM(amount) AS totalSales
SELECT
CASE WHEN totalSales < 1001.00 THEN 1001.00 - totalSales
WHEN totalSales < 2501.00 THEN 2501.00 - totalSales
WHEN totalSales < 5001.00 THEN 5001.00 - totalSales
WHEN totalSales < 10001.00 THEN 10001.00 - totalSales
WHEN totalSales < 15001.00 THEN 15001.00 - totalSales
END AS needed
FROM
tblsales
GROUP BY
accountName
ORDER BY
accountName ASC
不能使用'totalSales'。 Jut使用'SUM(amount)'代替。 –
這是它的小提琴。 http://sqlfiddle.com/#!9/60d4b/2 –
哪個RDBMS是爲了這個?請添加一個標籤來指定您是使用'mysql','postgresql','sql-server','oracle'還是'db2' - 或者其他的東西。 –