我有2个数据库查询,想将它们作为一个

时间:2018-09-15 13:26:27

标签: mysqli

我有以下问题: 我有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

数字不正确

詹斯

2 个答案:

答案 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

应该只从今天开始花费负载更新