我有以下问题: 我有2个数据库查询,想将它们设为一个。
SELECT SUM(verguetung_lead) FROM einkaeufe WHERE bearbeitet_wann >= '$zaehl_heute_von' AND bearbeitet_wann <= '$zaehl_heute_bis'
SELECT SUM(verguetung_lead) FROM einkaeufe WHERE bearbeitet_wann >= '$zaehl_gestern_von' AND bearbeitet_wann <= '$zaehl_gestern_bis'
表einkaeufe
bearbeitet_wann | verguetung_lead
----------------+----------------
1536937398 | 99.00
1536803939 | 10.00
SELECT
SUM(if(bearbeitet_wann >= '1536962460',bearbeitet_wann <= '1537048740',verguetung_lead)) AS einkaeufe_verguetet_heute_daten,
SUM(if(bearbeitet_wann >= '1536876060',bearbeitet_wann <= '1536962340',verguetung_lead)) AS einkaeufe_verguetet_gestern_daten,
SUM(if(bearbeitet_wann >= '1536444060',bearbeitet_wann <= '1537135140',verguetung_lead)) AS einkaeufe_verguetet_woche_daten
FROM einkaeufe
输出
[einkaeufe_verguetet_heute_daten] => 109.00 [einkaeufe_verguetet_gestern_daten] => 11.00 [einkaeufe_verguetet_woche_daten] => 2.00 )
第一行时间2018-09-14T15:03:18+00:00
第二行时间2018-09-13T01:58:59+00:00
数字不正确
詹斯
答案 0 :(得分:0)
您没有正确使用IF
,第二个参数是“ true时的值”,第三个参数是“ false时的值”(请参阅manual)。您也可以使用BETWEEN
来简化SELECT
。试试这个:
SELECT
SUM(if(bearbeitet_wann between 1536962460 and 1537048740,verguetung_lead, 0)) AS einkaeufe_verguetet_heute_daten,
SUM(if(bearbeitet_wann between 1536876060 and 1536962340,verguetung_lead, 0)) AS einkaeufe_verguetet_gestern_daten,
SUM(if(bearbeitet_wann between 1536444060 and 1537135140,verguetung_lead, 0)) AS einkaeufe_verguetet_woche_daten
FROM einkaeufe
输出:
einkaeufe_verguetet_heute_daten einkaeufe_verguetet_gestern_daten einkaeufe_verguetet_woche_daten
0,00 99,00 109,00
答案 1 :(得分:0)
$datetime_start = date("Y-m-d");
SELECT
SUM(if(lastupdate between Like '%".$datetime_start."%',verguetung, 0)) AS einkaeufe_verguetet_heute_daten,
FROM einkaeufe
应该只从今天开始花费负载更新