一部のモデルの最低価格を取得しようとしています。 各モデルは、製品に属する特定のグループに属します。Mysqlの各グループの最小値の合計を取得します
私は、次の表がありますいくつかのグループは、WHオプションとすることができ
製品
model_id product_id price
1 1 100
2 1 120
3 1 100
4 1 200
5 1 250
10 1 20
11 1 50
12 1 50
製品概要
model_id product_id group_id
1 1 A
2 1 A
3 1 A
4 1 A
5 1 A
10 1 B
11 1 B
12 1 B
製品グループオプション
group_id product_id
B 1
をメンバーが別の方法を選択しない限り、価格はゼロになることを意味します。
上記の例では、各グループの最低価格の合計を取得したいと考えています。 グループAとグループBの2つのグループがあります。 グループ最低価格の値は100です(model_id 1と3) グループBの最小価格の値は20(model_id 10)ですが、グループBはオプションなので最低価格の値100(グループA)+ 0(グループB)= 100
マイコードこれまで:
SELECT po.group_id,
CASE WHEN
((SELECT COUNT(*) FROM product_group_optional pgo
WHERE po.group_id = group_id AND po.product_id = 1 AND po.product_id = product_id) >= 1)
THEN SUM(0)
ELSE SUM(p.price)
END AS sum_price
FROM product_overview po, product p
WHERE po.product_id = 1
AND po.model_id = p.model_id
AND p.price = (
SELECT MIN(p2.price)
FROM product p2, product_overview po2
WHERE po2.product_id = 1 AND po2.group_id = po.group_id
AND po2.model_id = p2.model_id
)
GROUP BY po.group_id
出力:
group_id sum_price
A 200
B 0
最小値の0
総合和であります
問題は、グループAの場合は200になりますが、100になるはずです。 最小値100、モデル1および3の2つのモデルがあります。これらは合計100 = 100 = 200と仮定します。
問題a)しかし、この値が何回存在しても、最小値を取るだけです。
発行b)はまた、私は、グループAとグループB
のこれら二つの出力SUMのSUMを取得しようとしています。しかし、私はそれを行う方法がわからないです。 私はそれがこのクエリで完了したいです。
所望の出力
Sum of all groups
100
は、誰もが正しい方向に私をしてくださいつながることができますか?
私はあなたが唯一つの値を得ることができるので、あなたは1を制限すべきだと思いますか? –
こんにちはAhmad、私はそれを 'AND p.price ='の下の 'select query'で既に制限しようとしましたが、動作しません。 – shieldcy
あなたのクエリでは、あなたの結合で 'attribute_id'を使用していますが、あなたの構造体のその列は言及していません – Philipp