根据派生列 sql 查询创建新列?
Making a new column based on a derived column sql query?
所以我有一个名为 TOY_DETAILS 的 table,其中包含 ID、日期、Toy_obje、货币(可以是美元、英镑或欧元)和预算。
现在我想创建一个 sql 查询,它将 return 所有内容以及
- 一个以美元为单位的预算的计算列(所以转换率就像 1 英镑 = 1.5 美元和 1 欧元 = 1.2)
- 另一个计算列,其中包含以美元为单位的总预算。
我试过的。
SELECT ID, Date,Toy_object, currency, budget,
CASE currency
WHEN 'GBP' THEN budget*1.5
WHEN 'EUR' THEN budget*1.2
ELSE budget
END AS USD_Value
(SELECT SUM(USD_Value) FROM PROJECT_DETAILS) AS Total_Budget
FROM PROJECT_DETAILS
我的问题是 2)。我希望 Total_Budget 成为列 USD_Value 的总和,但是我无法键入 'SUM(USD_Value)',因为“列不存在”?
提前致谢,
您必须在 SUM
:
中重复 CASE
表达式
SELECT ID, Date,Toy_object, currency, budget,
CASE currency
WHEN 'GBP' THEN budget*1.67
WHEN 'EUR' THEN budget*1.3
ELSE budget END AS USD_Value,
SUM(CASE currency
WHEN 'GBP' THEN budget*1.67
WHEN 'EUR' THEN budget*1.3
ELSE budget
END) OVER() AS Total_Budget
FROM PROJECT_DETAILS
所以我有一个名为 TOY_DETAILS 的 table,其中包含 ID、日期、Toy_obje、货币(可以是美元、英镑或欧元)和预算。
现在我想创建一个 sql 查询,它将 return 所有内容以及
- 一个以美元为单位的预算的计算列(所以转换率就像 1 英镑 = 1.5 美元和 1 欧元 = 1.2)
- 另一个计算列,其中包含以美元为单位的总预算。
我试过的。
SELECT ID, Date,Toy_object, currency, budget,
CASE currency
WHEN 'GBP' THEN budget*1.5
WHEN 'EUR' THEN budget*1.2
ELSE budget
END AS USD_Value
(SELECT SUM(USD_Value) FROM PROJECT_DETAILS) AS Total_Budget
FROM PROJECT_DETAILS
我的问题是 2)。我希望 Total_Budget 成为列 USD_Value 的总和,但是我无法键入 'SUM(USD_Value)',因为“列不存在”?
提前致谢,
您必须在 SUM
:
CASE
表达式
SELECT ID, Date,Toy_object, currency, budget,
CASE currency
WHEN 'GBP' THEN budget*1.67
WHEN 'EUR' THEN budget*1.3
ELSE budget END AS USD_Value,
SUM(CASE currency
WHEN 'GBP' THEN budget*1.67
WHEN 'EUR' THEN budget*1.3
ELSE budget
END) OVER() AS Total_Budget
FROM PROJECT_DETAILS