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
Jabol
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


Cytat(SongoQ @ 2005-07-20 21:10:05)
@Jabol Nie wiem co sie kryje pod tym "g" ale wydaje mi sie ze jak by cos LEFT JOIN nieprawidlowo dzialal to by generowal za kazdym razem inne rekordy, jesli wyniki sa dokladnie takie same w 2 bazach danych to wydaje mi sie ze to wina jest zapytania.

@SongoQAleż left join działa znakomicie. Dokładnie tak jak trzeba. Po prostu służy do innych zastosowań, a w tym konkretnym przypadku generuje wiele "g.", czyli niepotrzebnych w tym zastosowaniu rekordów. Bo on nie robi tego "całościowo". On tutaj kleji każdy rekord oddzielnie i nie patrzy, czy już z niego korzystał.

@beeper: popróbuj z widokami (tutaj schowane)
Kod
SELECT win.id, kw1.kw, kw2.kw, kw3.kw
FROM win
LEFT JOIN (SELECT id, sum(kwota1) AS kw FROM kwota1 GROUP BY  id) AS kw1 ON (win.id=kw1.id)
LEFT JOIN (SELECT id, sum(kwota2) AS kw FROM kwota2 GROUP BY  id) AS kw2 ON (win.id=kw2.id)
LEFT JOIN (SELECT id, sum(kwota3) AS kw FROM kwota3 GROUP BY  id) AS kw3 ON (win.id=kw3.id);

Czy jak to się tam nazywa - podzapytania. Ale możesz te podzapytania wyprowadzić do widoków i będzie ok (podzapytania w ten sposób działają na pgsql'u, ale ze to na mysql'u pójdzie nie ręcze, a widoki chyba nawet mysql ma).
Acha, nazwy tabel to sobie wymyśliłem jak przenosiłem strukturę na lokala. win to windykacja, kwota1 to kosztywf, kwota2 to kosztyww a kwota3 to wpłaty (czy jakkolwiek w dowolnej kolejości).


XXX: DAŁEM CODE, bo SQL nie działa (wywala mi jakieś fragmenty html'a);

Ten post edytował Jabol 20.07.2005, 22:30:48
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: 11.10.2025 - 10:15