![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 24.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
Mam w PHP tabelę w której ma się wyświetlić różnica sum dwóch kolumn z tej samej tabeli bazy MySQL.
Był już podobny temat na tym forum, ale tam chodziło o różnicę sum dwóch kolumn z różnych tabel. Niestety, nie mogę sobie z tym poradzić aby dopasować to do swojego przypadku. A zapytania które sumują mam takie:
Te sumy wyświetlają mi się prawidłowo. Teraz chodzi o to, aby stworzyć takie zapytanie MySQL którego wynikiem będzie różnica tych dwóch sum. Ten post edytował Therminus 1.07.2015, 22:19:13 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
A nie mozesz w php odjac od siebie tych dwoch wartosci? Od tak poprostu...
Jesli nie mozesz bo cos tam, to..: SELECT SUM(Pow_Uzyt) - SUM(Pow_Uzyt_IF) FROM `broniewskiego_2-10` WHERE `Kategoria` LIKE 'M' -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 24.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
A nie mozesz w php odjac od siebie tych dwoch wartosci? Od tak poprostu... Może i mogę, ale tego nie wiem (przedszkole wszak). Ta tabelka, którą generuję kodem PHP jest dość skomplikowana. Może dlatego, że niepotrzebnie ją pokomplikowałem? ![]() Każdy wiersz to: 1. kilka kolumn wyciągnięte z tabeli MySQL `dzialki` 2. następne kolumny to obliczenia z sum zawartości innej tabeli, różnej dla każdego wiersza. A tych tabel jest około setki(!). Cytat(nospor) Jesli nie mozesz bo cos tam, to..: SELECT SUM(Pow_Uzyt) - SUM(Pow_Uzyt_IF) FROM `broniewskiego_2-10` WHERE `Kategoria` LIKE 'M' No tak, to było proste do bólu. Ale dlaczego na to nie wpadłem? Bo kombinowałem inaczej. Przykład który podałem okazał się być nieszczęśliwie zbyt prosty. Otóż "WHERE `Kategoria` LIKE 'coś-tam'" w innych przypadkach będzie różne dla poszczególnych składników sumy, czy różnicy. Na przykład cos takiego jak poniżej. To oczywiście nie działa, ale może jakoś przystepnie zilustruje o co mi chodzi. CODE
A jeśli ktoś chciałby ogarnąć przynajmniej fragment większej całości, to mogę zapodać gotowca do wyświetlenia w przeglądarce i jakiś dump z części bazy. Przy okazji okaże się jak nie należy pisać w php i tworzyć tabel w bazie. ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Może i mogę, ale tego nie wiem (przedszkole wszak). Ta tabelka, którą generuję kodem PHP jest dość skomplikowana. Może dlatego, że niepotrzebnie ją pokomplikowałem? Skoro masz dwie wartosci, ktore wyswietlasz na ekran w php, to i bez zadnego problemu mozesz te dwie wartosci od siebie odjac a wynik wyswietlic na ekran. Skoro masz: echo $w1; echo $w2; to rownie dobrze mozesz zrobic echo ($w1 - $w2); Gdzie tu magia? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował mmmmmmm 2.07.2015, 13:49:00 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 24.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
A, to tędy droga. Muszę poczytać o tym "Coalesce". Dzięki bardzo. Skoro masz: echo $w1; echo $w2; to rownie dobrze mozesz zrobic echo ($w1 - $w2); Gdzie tu magia? Próbowałem tej sztuki, ale jakoś mi nie wychodziło. Chyba to, że to wyrażenie umieszcza się pomiędzy znacznikami <td></td> nie ma znaczenia? Ten post edytował Therminus 2.07.2015, 15:10:02 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
To nie o Coalesce cvhodzi, tylko o CASE WHEN...
Coalesce podaje tylko pierwszą nie-Nullową wartość. Dla SUM taka może się zdarzyć... |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Chyba to, że to wyrażenie umieszcza się pomiędzy znacznikami <td></td> nie ma znaczenia? Nie, nie ma znaczenia... ja ci tylko podalem przyklad. Logiczne, ze u CIebie to wyglada inaczej. Przeciez ja nie wiem jak to wyglada u CIebie. Nie pokazales kodu.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 11:58 |