Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
281 views
in Technique[技术] by (71.8m points)

PHP SQL sqlsrv SUM ... GROUP BY doesn't work

I have QUERY like this:

$query2 = "
SELECT plb_Umowa.up_IdPracownika, plb_Wyplata.wyp_ObciazeniePracodawcy, SUM(plb_Wyplata.wyp_StatGodzPrzepr) AS wyp_StatGodzPrzepr, YEAR(plb_ListaPlac.lp_Miesiac), MONTH(plb_ListaPlac.lp_Miesiac)
FROM plb_Wyplata 
    INNER JOIN plb_Umowa ON plb_Wyplata.wyp_IdUmowy = plb_Umowa.up_Id
    INNER JOIN plb_ListaPlac ON plb_Wyplata.wyp_IdListyPlac = plb_ListaPlac.lp_Id
WHERE (YEAR(plb_ListaPlac.lp_Miesiac) LIKE '$year') AND (MONTH(plb_ListaPlac.lp_Miesiac) LIKE '$month')
GROUP BY plb_Umowa.up_IdPracownika
ORDER BY plb_Umowa.up_IdPracownika";

and it gives bool.

Once I remove: SUM and ORDER BY query returnes proper values. Like this:

$query2 = "
SELECT plb_Umowa.up_IdPracownika, plb_Wyplata.wyp_ObciazeniePracodawcy, plb_Wyplata.wyp_StatGodzPrzepr, YEAR(plb_ListaPlac.lp_Miesiac), MONTH(plb_ListaPlac.lp_Miesiac)
FROM plb_Wyplata 
    INNER JOIN plb_Umowa ON plb_Wyplata.wyp_IdUmowy = plb_Umowa.up_Id
    INNER JOIN plb_ListaPlac ON plb_Wyplata.wyp_IdListyPlac = plb_ListaPlac.lp_Id
WHERE (YEAR(plb_ListaPlac.lp_Miesiac) LIKE '$year') AND (MONTH(plb_ListaPlac.lp_Miesiac) LIKE '$month')
ORDER BY plb_Umowa.up_IdPracownika";

Thank you for your help.

question from:https://stackoverflow.com/questions/65889071/php-sql-sqlsrv-sum-group-by-doesnt-work

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Ok, I have changed into this (directly in database)

SELECT plb_Umowa.up_IdPracownika, plb_Wyplata.wyp_StatGodzPrzepr, YEAR(plb_ListaPlac.lp_Miesiac), MONTH(plb_ListaPlac.lp_Miesiac), SUM(plb_Wyplata.wyp_ObciazeniePracodawcy) as sumaWypl
FROM plb_Wyplata 
    INNER JOIN plb_Umowa ON plb_Wyplata.wyp_IdUmowy = plb_Umowa.up_Id
    INNER JOIN plb_ListaPlac ON plb_Wyplata.wyp_IdListyPlac = plb_ListaPlac.lp_Id
WHERE (YEAR(plb_ListaPlac.lp_Miesiac) LIKE '2020') AND (MONTH(plb_ListaPlac.lp_Miesiac) LIKE '7')
GROUP BY plb_Umowa.up_IdPracownika, plb_Wyplata.wyp_StatGodzPrzepr, YEAR(plb_ListaPlac.lp_Miesiac), MONTH(plb_ListaPlac.lp_Miesiac)

and it gives table, however SUM still doesn't work

1   8640    2020    7   8538,67
1   11040   2020    7   1707,68
2   8640    2020    7   6213,97
2   11040   2020    7   835,04
3   8640    2020    7   8979,44
3   11040   2020    7   1365,54
4   8640    2020    7   7174,34
4   11040   2020    7   1367,09
6   4320    2020    7   5784,02
8   8640    2020    7   9359,85
8   11040   2020    7   1534,02
9   1000    2020    7   698,11
10  8640    2020    7   7940,45
10  11040   2020    7   1707,68
11  8640    2020    7   8865,41
11  11040   2020    7   1707,66
12  8640    2020    7   9094,79
12  11040   2020    7   1367,07

It shoud be grouped by first column and las amount summed.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...