【问题标题】:Show the sum of data if there is only data on mysql如果mysql上只有数据,则显示数据总和
【发布时间】:2018-10-28 09:40:57
【问题描述】:

如果不为空,我想显示数据。我的查询是:

SELECT     t.idtest,
           t.testkhusus,
           t.biayakhusus,
           t.uangmuka,
           t.total,
           t.tanggallunas,
           t.biayatambahan,
           p.namaperusahaan,
           (Sum(jth.tarifpsikolog) + Sum(jth.tarifadministrasi) + Sum(jth.tariftester)) AS biayadll
FROM       test t
INNER JOIN perusahaan p
ON         t.perusahaan_idperusahaan=p.idperusahaan
INNER JOIN (jadwaltest jt
INNER JOIN jadwaltest_has_biayatimelostcost jth
ON         jt.idjadwaltest = jth.idjadwaltest)
ON         t.idtest = jt.test_idtest
WHERE      t.tanggallunas BETWEEN '2018-05-22' AND '2018-05-23'

如果空白数据不应该显示该行。

我希望mysql_num_rows()的结果是0而不是1。

请帮忙,谢谢..[![在此处输入图片描述][2]][2]

【问题讨论】:

  • 请努力格式化您的查询。
  • 我该怎么做..
  • 您的查询无效,因为您在 select 子句中混合了列和 SUM
  • 如果我不使用日期(BETWEEN)请求正确运行,但如果使用日期没有数据的日期,则请求有问题。

标签: mysql sql


【解决方案1】:

您需要在GROUP BY 中定义您的聚合列。

检查我的简单小提琴:

http://sqlfiddle.com/#!9/cae193/5

select SUM(amount) 
from t1
where 0=1;

select SUM(amount) 
from t1
where 0=1
group by id

在第一种情况下,即使没有要总结的内容,它也会返回带有 nulls 的空行。

但在第二个 GROUP BY 中,它不返回任何行。

在您的情况下,可能是 GROUP BY t.idtest 或您想要和/或您需要的任何内容

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    相关资源
    最近更新 更多