2017-03-24 24 views
0

ここでは同じ値の倍数としてcr.creditの値を取得しています。しかし、私は合計値を計算するための正確な値が必要です。答えを得るために誰でも助けてください。合計でSQLの複数の列を組み合わせる

SELECT 
    gm.id, 
    gm.groupid, 
    gm.tktno, 
    gm.memberid, 
    (COALESCE((g.emdue - ae.dividend), 0)) AS a, 
    SUM(ra.debit) AS deb, 
    SUM(DISTINCT ra.credit) AS cr, 
    COALESCE((SUM(ra.debit) - SUM(ra.credit)), 0) AS b, 
    COALESCE(SUM(cr.credit_value), 0) AS c, 
    COALESCE((COALESCE((g.emdue - ae.dividend), 0) - COALESCE((SUM(ra.debit) - SUM(ra.credit)), 0) 
    - COALESCE(SUM(cr.credit_value), 0)), 0) AS total 
FROM groupmember gm 
LEFT JOIN runningaccount ra 
    ON ra.group_id = gm.groupid 
    AND ra.ticket_no = gm.tktno 
    AND gm.memberid = ra.member_id 
    AND gm.id = ra.group_member_id 
LEFT JOIN chitreceipt cr 
    ON gm.groupid = cr.groupid 
    AND gm.memberid = cr.memberid 
    AND gm.tktno = cr.tktno 
LEFT JOIN groupnew g 
    ON g.id = gm.groupid 
LEFT JOIN auctionentry ae 
    ON ae.groupid = gm.groupid 
GROUP BY gm.memberid, 
     gm.groupid, 
     gm.tktno 
+0

これはmySqlです。 –

答えて

0

この列とは別の値を使って合計値を得ることができます。 like

sum(distinct COALESCE(cr.credit_value,0)) 

上記のように使用してください。

+0

私は私の出力を持っています。 –

+0

'nvl()' ???質問は 'MySQL'とタグ付けされ、' nvl() 'はありません。あなたはむしろ 'IsNull()'または 'COALESCE()'を意味しましたか? – Rahul

+0

申し訳ありません私はそれを編集しました、合体を言うことを意味します – Rams

関連する問題