根据table2中列的值计算table1中的列值

时间:2013-03-07 10:36:13

标签: sql

嗨,我被困在计算列。我厌倦了谷歌搜索类似的问题,没有运气。

请看下表。

ConfigTable

-------------------------------
|KeyName        | KeyValue    |
-------------------------------
|MinimumMargin  | .50         |
|MaximumMargin  | 2           |
-------------------------------

PriceTable

-------------------------------
|SKU  |Price   | Shipping     |
-------------------------------
|001  | 23    | 1.5         |
|002  | 20    | 1.5         |
-------------------------------

我希望得到以下结果:

SELECT SKU, SUM(PRICE+SHIPPING) + 'ConfigTable.MinMargin' as CalcPrice FROM PRICE

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可以使用子查询获取每个sum的{​​{1}}价格和运费,然后使用sku加入CROSS JOIN以添加{{1} }}:

configTable

请参阅SQL Fiddle with Demo

如果keyValue是varchar,那么您需要对其进行转换,以便将其添加到select p.sku, p.CalcPrice + (c.KeyValue) CalcPrice from ( select p.sku, sum(p.price + p.shipping) CalcPrice from priceTable p group by p.sku ) p cross join configTable c where c.keyname = 'MinimumMargin'

KeyValue

请参阅SQL Fiddle with Demo