我想寫一個SQL查詢來計算許可證的價格。 請檢查下面的模式: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和類型,我想根據以下內容計算所有許可證的總價格荷蘭國際集團critirea:
對於給定的用戶標識和類型:
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小提琴:http://sqlfiddle.com/#!2/05f5cf
普萊斯幫助。
謝謝, 大衛
謝謝。但是這個查詢中有一個價格是我想要的價格*許可證中沒有設備,但是這隻返回價格 – user2818666
@ user2818666以及您的表中有哪些設備? –
@ user2818666查看編輯也許 –