0

こんにちは、列の計算に行き詰まっています。同様の質問をグーグルで検索するのにうんざりしていて、運がありませんでした。

次の表を見てください。

構成テーブル

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

価格表

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

私は以下のように結果を取得したい:

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

前もって感謝します。

4

1 に答える 1

2

サブクエリを使用して、sumそれぞれの価格と送料を取得し、 a をsku使用しCROSS JOINて結合configTableして を追加できますkeyValue

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'

SQL Fiddle with Demoを参照してください。

が varcharの場合KeyValueは、変換して に追加できるようにする必要がありますCalcPrice

select p.sku,
  p.CalcPrice + convert(c.KeyValue, decimal(10, 2)) 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';

デモで SQL Fiddle を参照してください

于 2013-03-07T10:43:03.483 に答える