3

Entrinsik の Informer を使用して作成しようとしている厄介な SQL クエリがあります。Informer で結果を計算して、javascript を使用してパーセンテージを計算してもらいたいです。ただし、Informer には列のデータ (つまり、パーセンテージの合計) にアクセスする機能がないため、これを生成するには SQL クエリが必要です。結果は現在次のようになります。

refund_code    refund_amount    month_group
-----------    -------------    -----------
ref1               10           january
ref2               20           january
ref3               30           january
ref1               40           february
ref2               50           february
ref3               60           february

私が欲しいのは次のようなものです:

refund_code    refund_amount    month_group    month_total  
-----------    -------------    -----------    -----------  
ref1               10           january                 60  
ref2               20           january                 60  
ref3               30           january                 60  
ref1               40           february               150  
ref2               50           february               150  
ref3               60           february               150  

私のクエリは次のとおりです。

SELECT mr.month_group,
    bd.transaction_code AS refund_code,
    SUM(bd.extended) AS refund_amount
FROM   billing_details AS bd
    LEFT JOIN monthly_ranges AS mr
        ON ( bd.entry_date BETWEEN mr.start_date AND mr.end_date )
WHERE  bd.transaction_code IN ( 'REFPRI', 'REFSEC', 'REFPT', 'REFREQPRI' )
    AND bd.entry_date >= '2012-01-05'
GROUP BY mr.month_group, bd.transaction_code
ORDER BY mr.month_group, bd.transaction_code

1 か月あたりの合計のテーブルを生成する 2 番目のクエリは、次のようになります。

SELECT mr.month_group,
    SUM(bd.extended) AS refund_amount
FROM   billing_details AS bd
    LEFT JOIN monthly_ranges AS mr
        ON ( bd.entry_date BETWEEN mr.start_date AND mr.end_date )
WHERE  bd.transaction_code IN ( 'REFPRI', 'REFSEC', 'REFPT', 'REFREQPRI' )
    AND bd.entry_date >= '2012-01-05'
GROUP BY mr.month_group
ORDER BY mr.month_group

それで、2つを組み合わせる方法はありますか?

4

1 に答える 1

1

技術的には、サブクエリとして2つを文字通り結合できます。

すなわち

SELECT m.refund_code, m.refund_amount, m.month_group, t.month_total
 FROM (your refund query above) m
 JOIN (your total query above) t
   ON m.month_group = t.month_group

「totalquery」の「refund_amount」の名前を「month_total」などに変更してください。

于 2012-09-28T18:03:32.573 に答える