【发布时间】:2011-10-31 20:26:09
【问题描述】:
我们有一个“报告生成器”,它基本上根据用户选择的选项构建一系列 mysql 查询。来自一系列查询的数据用于绘制图表。我们遇到了一个基于 SUM 返回不正确值的报告。这是查询(我不确定这个网站上是否有代码格式,所以我只是粘贴它):
SELECT DISTINCT SUM( pp.EffectivePrice)
FROM quotes qu
LEFT JOIN plans pl ON pl.ID = qu.planID AND qu.active_quote = '1'
LEFT JOIN plan_procedures pp ON pp.QuoteID = qu.ID AND qu.active_quote = '1'
LEFT JOIN patients pt ON pt.ID = pl.patientID
LEFT JOIN events_log el7881 ON el7881.TreatmentID = pl.ID
LEFT JOIN events_log el9205 ON el9205.TreatmentID = pl.ID
WHERE el7881.LogDate >= '2011-01-01 00:00:00' AND ( (el7881.CurrStageID != '5' AND pt.ID != '') AND (el7881.CurrStageID != '19' AND pt.ID != '') ) AND (((CAST(pl.surgery_date AS DATE) BETWEEN '2011-01-01' AND '2011-01-31' AND pl.surgery_date != '') OR (pl.LastSurgeryDate != '0000-00-00 00:00:00' AND CAST(pl.LastSurgeryDate AS DATE) BETWEEN '2011-01-01 00:00:00' AND '2011-01-31 23:59:59')) AND pt.ID != '') AND el9205.LogDate <= '2011-01-31 23:59:59' AND ( (el9205.CurrStageID = '4' AND el9205.PrevStageID != '4' AND pt.ID != '') ) AND qu.active_quote = '1' AND ( pl.doctorID = '6' OR pl.doctorID = '9' OR pl.doctorID = '13' )
查询是由 php 脚本自动生成的,所以很复杂。但是这里的问题很简单:为什么当我运行这个查询时,结果值与我在没有“SUM()”的情况下运行相同的查询时不同,并且只是手动添加值?当我手动添加它们时,结果是正确的,但是带有“SUM()”的结果比它应该的要高。提前感谢您的帮助。
【问题讨论】:
标签: php mysql sum distinct report