我有一个麻烦的 SQL 查询,我正在尝试使用 Entrinsik 的告密者。我希望 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
那么有什么办法可以将两者结合起来呢?
最佳答案
从技术上讲,您可以从字面上将两者连接为子查询。
即
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”或类似名称即可。
关于javascript - 使用 MySQL/Javascript 计算百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12644797/