SQLビューが新しくなったので、やさしくなりましょう!SQLビューでの式
私は、次のSQLビューがあります。
SELECT dbo.product.name AS [Product Name],
ROUND(CASE [vat] WHEN 1 THEN [packcost] * 1.2 ELSE [packcost] END, 2) AS [Pack Cost],
ROUND(CASE [vat] WHEN 1 THEN ([packcost] * 1.2)/[units] ELSE [packcost]/[units] END, 2) AS [Unit Cost],
dbo.purchase.unitsaleprice * dbo.product.units AS [ Pack Sale Price], dbo.purchase.unitsaleprice AS [Unit Sale Price],
dbo.product.units * (dbo.purchase.unitsaleprice - ROUND(CASE [vat] WHEN 1 THEN ([packcost] * 1.2)/[units] ELSE [packcost]/[units] END, 2)) AS [Pack Profit],
dbo.purchase.unitsaleprice - ROUND(CASE [vat] WHEN 1 THEN ([packcost] * 1.2)/[units] ELSE [packcost]/[units] END, 2) AS [Unit Profit]
FROM dbo.product INNER JOIN
dbo.purchase ON dbo.product.id = dbo.purchase.productID
をしかし、私はこれの多くを書き換えていて、それは非効率です。
例えばIは、[パックの費用]列を定義したい:
ROUND(CASE [vat] WHEN 1 THEN [packcost] * 1.2 ELSE [packcost] END, 2) AS [Pack Cost]
は、それを書き換えるelswhere代わりに使用します。
例えば、私は使用することができます:それは私もスティックの右端を取得、またはかどうかだ場合
ROUND(CASE [vat] WHEN 1 THEN ([packcost] * 1.2)/[units] ELSE [packcost]/[units] END, 2) AS [Unit Cost]
わからない:
[Pack Cost]/[Units]
は、代わりに単価を定義するにはこれを行うには適切です。
- あなたは私を与えることができますいくつかのポインタ? [Pack Cost]を返す関数を作成しますか? – Ben