![]() |
![]() |
-Andrzej.W.- |
![]()
Post
#1
|
Goście ![]() |
Powyższe zapytanie teoretycznie jest prawidłowe, ponieważ sql nie wywala błędu, natomiast w każdej kolumnie wywala mi null, mimo że kiedy wykonam osobno select kolumn pierwszej tabeli i sum kolejnych tabel, zwraca poprawne wyniki. Nie wiem w czym leży problem, jeszcze nie zgłębiałem sql, jestem póki co na etapie php, proszę o jakieś wskazówki. Pozdrawiam. Andrzej. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 20 Dołączył: 19.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jestes pewien że jest dobrze sformułowane "....from tabela,tabela,tabela..."? wg mnie nie jest to poprawne
|
|
|
-Andrzej.W.- |
![]()
Post
#3
|
Goście ![]() |
Jak pisałem temat, tabela przychody była pusta, gdy dodałem do niej parę rekordów, to już nie było null, ale sumy wyszły kosmiczne.
Natomiast domyślam się, że to jest bubel, ale nie mam pojęcia jak to sformuować. ;/ Robiłem to samo zapytanie z inner join i też jakieś dziwne przeliczenia wychodziły. Coś mi umyka, nie wiem co. Ten post edytował Andrzej.W. 22.05.2013, 08:08:58 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 20 Dołączył: 19.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
hehe zakręcony jesteś Panie Andrzeju (IMG:style_emoticons/default/wink.gif) niech Pan powie jakie tabele ma pan i co w nich jest a odpowiedz będzie bardzo prosta jak to zrobic
|
|
|
-Andrzej.W.- |
![]()
Post
#6
|
Goście ![]() |
@mmmmmmm nie mam pojęcia co mam z tym zrobić.
@poli25 Nie zakręcony, znam sql tylko w podstawowych podstawach. zrobiłem sobie 3 przykładowe tabele: domeny id_domeny|nazwa_domeny| -------------------------------- koszty id_koszty|koszt(wartosc)|id_domeny| ------------------------------------------ przychody id_przychody|przychod(wartosc)|id_domeny| ----------------------------------------- I teraz chciałbym wydostać jednym zapytaniem id_domeny, nazwa_domeny, sum(koszt), sum(przychod). wg. oczywiscie id domeny próbowałem tak:
wszystko ładnie pieknie, ale sum zwraca mi jakies 50-60 tys, podczas gdy faktyczna wartosc sum wynosi 120 i 450 Wszystko dobrze działa, jeśli dam tylko np. sum(koszt), ale jak są dwie sumy w 1 zapytaniu, to już jakaś masakra. Dawałem z aliasami, też guzik dało. Ten post edytował Andrzej.W. 22.05.2013, 11:58:39 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Błąd na etapie projektowania tabel i zależności. Jeśli masz dwie tabelki jako przychód / rozchód, to musisz mieć dwa zapytania do sumowania. Inaczej ci wyjdzie kicha. Albo bardzo skomplikowane zapytania.
Po drugi unikaj mieszania LEFT / RIGHT - nawet zaawansowani się pogubią, a co dopiero początkujący. Na szybko do poprawienia (wcale nie znaczy, że szybko do wyliczenia)
|
|
|
-Andrzej.W.- |
![]()
Post
#8
|
Goście ![]() |
Błąd na etapie projektowania tabel i zależności. Jeśli masz dwie tabelki jako przychód / rozchód, to musisz mieć dwa zapytania do sumowania. Inaczej ci wyjdzie kicha. Albo bardzo skomplikowane zapytania. Po drugi unikaj mieszania LEFT / RIGHT - nawet zaawansowani się pogubią, a co dopiero początkujący. Sugerujesz zatem, że jeśli już decyduję się na dwie osobne tabele, w takim układzie, to lepszym rozwiązaniem sa jednak osobne zapytania? Ciągle natrafiam na tezę, że jeśli coś się da zrobić jednym zapytaniem, to zawsze to jest lepsze rozwiązanie niż w kilku. A tak w skrócie, jaka zatem jest różnica między left/right join? |
|
|
![]() ![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 20 Dołączył: 19.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
uzyj podzapytan:
SELECT a.id_domeny,a.nazwa_domeny, (select sum(koszt) from koszty where id_domeny=a.id_domeny)as koszt, (select sum(przychody) from przychody where id_domeny=a.id_domeny)as przychod FROM domeny a (IMG:style_emoticons/default/wink.gif) bedzie dzialac |
|
|
-Andrzej.W.- |
![]()
Post
#10
|
Goście ![]() |
Dzięki poli..
Działa, nawiasem mówiąc banalne heh Miłego popołudnia. Andrzej. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 16:47 |