ライセンスの価格を計算する SQL クエリを作成しようとしています。以下のスキーマを確認してください。
表:価格
| ID (bigint) | USERS(Bigint) | TYPE (varchar) | PRICE (BIGINT)
------------------------------------------------------------------
| 1 | 1 | other | 20 |
| 2 | 15 | local | 13.96 |
表:ライセンス
| ID (bigint) | USERID (Bigint) |STATUS(VARCHAR) | USERS(bigint) | DEVICES(BIGINT) | TYPE(VARCHAR) | REQUEST_TYPE (VARCHAR) |
--------------------------------------------------------------------------------------------------------------
| 1 | 13 | 10 | 10 | local | add |
| 2 | 13 | 15 | 20 | other | extend |
私の目的:
ユーザーIDとタイプを指定して、次の基準に基づいてすべてのライセンスの合計価格を計算したいと思います:
特定のユーザー ID とタイプについて:
1) request_type が新規 (または) 拡張のいずれかであるすべてのライセンスを取得します。
2) そのようなライセンスごとに、ユーザー数 (USERS 列) を「価格」表の USERS 列と照合し、デバイスとして計算を行います* (価格表からの関連付けられた価格)
3) これを使用して、そのようなすべての価格の合計を計算し、合計価格を返します。
次のクエリを使用してこれを実行しようとしていますが、まだ成功していません:
SELECT SUM(PRICE) FROM prices
LEFT OUTER JOIN licenses
ON (
prices.users=licenses.users
AND prices.type=licenses.type
)
WHERE licenses.userid=13
AND licenses.status='approved'
AND licenses.request_type IN ('add','extend')
ここで SQL Fiddle を確認してください: http://sqlfiddle.com/#!2/05f5cf
助けてください。
ありがとう、デビッド