2017-04-14 4 views
1

ちょっと私は本当に奇妙なロジックを持っているいくつかの1つ私はクエリを書くのを助けることができます。 regOptionにもxnCoupon(クーポンとregOptionが同じentry_idを共有する)を持つregOptionのすべての価格を合計したいと思います。このexapleでは量が第2の例では139他の列の値に基づいてMySqlのクエリの合計行

|id   |trans_id| entry_id |type  | Price 
------------------------------------------------------ 
|43575855 |24419612| 26898343 |regOption| 139   
|43575856 |24419612| 26898343 |xnCoupon | 50 

|43575857 |24419612| 26898346 |regOption| 139   
|43575858 |24419612| 26898346 |Tshirt | 10 

は量が278

|id   |trans_id| entry_id |type  | Price 
------------------------------------------------------ 
|43575855 |24419612| 26898343 |regOption| 139   
|43575856 |24419612| 26898343 |xnCoupon | 50 

|43575857 |24419612| 26898346 |regOption| 139   
|43575858 |24419612| 26898346 |xnCoupon | 50 

私の試みを確認するために、この

Select sum(price) FROM table where type ='regOption' AND (something)のようなものですが、regOptionが同じでxnCouponと関連しているだろうたかったですたかりましたentry_id?

誰かがロジックで私を助けることができる、任意のヘルプが

+0

私はあなたを助けることができますか? – vladimirProp

答えて

1
SELECT SUM(price) 
FROM table 
WHERE type = 'regOption' 
AND entry_id IN 
(
    SELECT entry_id 
    FROM table 
    WHERE type = 'xnCoupon' 
) 
+0

tnx vote up私の質問 – vladimirProp

1

を歓迎しているこれは、あなたが探しているものではないかもしれない - この文は、トランザクションごとxnCouponを対応するregOptionタイプの価格を合計し、総計を与えます。

select ifnull(reg.trans_id,'<<TOTAL>>') as trans_id, 
     sum(reg.price) 
    from `table` reg 
    join `table` xnc 
     on ( xnc.entry_id = reg.entry_id 
      and reg.type = 'regOption' 
      and xnc.type = 'xnCoupon') 
group by reg.trans_id with rollup; 
関連する問題