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

生成每月总计表的第二个查询如下所示:

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

那么有没有办法将两者结合起来呢?

4

1 回答 1

1

从技术上讲,您可以从字面上将两者作为子查询加入。

IE

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

只需确保将“总查询”中的“refund_amount”重命名为“month_total”或类似名称。

于 2012-09-28T18:03:32.573 回答