Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Suma kosztow
beeper
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 20.01.2005

Ostrzeżenie: (0%)
-----


Potrzebuje zrobic zestawnienie kosztow
Ma sie wyswietlic dane o umowie i suma kosztow dla kazdej z nich

Sa 3 tabele:
Umowa
KosztyFin
KosztySad

i robie tak:
  1. SELECT w IDumowy
  2. , w.WNazwaSkrocona
  3. , w.DNazwaSkrocona
  4. , sum(wf.Kwota) AS SumKwotaFin , sum(ws.Kwota) AS SumKwotaSad
  5. FROM Umowa w
  6. LEFT JOIN KosztyFin wf ON w.IDumowy=wf.IDumowy
  7. LEFT JOIN KosztySad ws ON w.IDumowy=ws.IDumowy
  8. GROUP BY w.IDumowy

Niestety zle mi wylicza, kosztyFin wynosza 4012 a wylicza mi ze 170129,95

Nie mam pojecia skad sie to bierze.

Porszę o pomoc.

Ten post edytował beeper 19.07.2005, 22:57:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




left join ma to do siebie, że dołącza ci też full pustych rekordów, przez co tworzą się sztuczne rekordy do sumowania. Stąd ten przyrost.

musisz dać pare warunków na not null. Coś w tym stylu (zakładam ze masz pole ID w tabelach) (to powinno zmniejszyc sume, ale nie gwarantuje że da wynik poprawny)

  1. SELECT w IDumowy
  2. , w.WNazwaSkrocona
  3. , w.DNazwaSkrocona
  4. , sum(wf.Kwota) AS SumKwotaFin , sum(ws.Kwota) AS SumKwotaSad
  5. FROM Umowa w
  6. LEFT JOIN KosztyFin wf ON w.IDumowy=wf.IDumowy
  7. LEFT JOIN KosztySad ws ON w.IDumowy=ws.IDumowy
  8. WHERE wf.ID IS NOT NULL AND ws.ID IS NOT NULL
  9. GROUP BY w.IDumowy
Go to the top of the page
+Quote Post

Posty w temacie
- beeper   Suma kosztow   19.07.2005, 22:56:41
- - Jabol   hmm... a sprawdzałeś obiawy? Skąd się bierze liczb...   19.07.2005, 23:04:02
- - beeper   Sprawdzalem i w bazie wszystko wyglada wporzadku, ...   19.07.2005, 23:08:14
- - nospor   left join ma to do siebie, że dołącza ci też full ...   20.07.2005, 08:34:39
- - beeper   Niestety nie dziala :/ Probowalem na innej bazie i...   20.07.2005, 08:45:22
- - SongoQ   Moze idz tropem @nospor i daj konwersje z NULL na ...   20.07.2005, 09:37:50
- - beeper   Tak wyglada diagram tabel ktore mnie interesuja J...   20.07.2005, 11:08:42
- - SongoQ   Moze jakis blad jest z using. Sprawdz przez LEFT J...   20.07.2005, 11:18:03
- - beeper   Z tego co dzis probowalem to wyglada na to ze mysq...   20.07.2005, 13:25:44
- - SongoQ   Sprawdzales tak jak Ci pisalem, 3 tabele przez LEF...   20.07.2005, 13:34:51
- - beeper   Przez ON juz probowalem, efekt taki sam. Nie mam p...   20.07.2005, 13:42:55
- - SongoQ   [SQL] pobierz, plaintext SELECTwindykacja.IDwierzy...   20.07.2005, 14:35:01
- - beeper   No teraz jest ok. A tutaj wartosci na ktore sie ...   20.07.2005, 14:50:29
- - SongoQ   A nie pisze nic na stronie MySQLa, ze w tej wersji...   20.07.2005, 14:55:11
- - beeper   Chyba jednak to nie jest wina mysql. Wrzucilem baz...   20.07.2005, 15:31:56
- - Jabol   Odpowiedź jest bardzo prosta: musisz policzyć każd...   20.07.2005, 19:16:44
- - SongoQ   @Jabol Nie wiem co sie kryje pod tym "g...   20.07.2005, 20:10:05
- - Jabol   Cytat(SongoQ @ 2005-07-20 21:10:05)@Jabol Nie...   20.07.2005, 21:50:46
- - beeper   Dzieki wielkie wszystkim za pomoc. Oto rozwiazanie...   20.07.2005, 23:07:36
- - SongoQ   @Jabol Cytat@beeper: popróbuj z widokami (tutaj sc...   21.07.2005, 01:02:34


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 05:04