![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 141 Pomógł: 0 Dołączył: 24.07.2003 Ostrzeżenie: (10%) ![]() ![]() |
nie wiem jak to mozliwe, ale prosze przyjzyjcie sie temu przypadkowi:
takie zapytanie: [sql:1:3963c6815c] "SELECT tel1, sum(impuls), data, operator FROM bil WHERE io = 7 AND ( operator = 501 OR operator = 505 OR operator = 509) AND data = 110703 group by tel1 "; [/sql:1:3963c6815c] wywala 1158 wierszy. I ok. ale jesli zrobie 3 zapytania w których pojedynczo wymienie 3 rozne kryteria z kolumny "operator" to ich suma da liczbe 1230 <- wiecej niz wynik z zapytania, ktore przedstawilem!!! Malo sie znam i operowalem zazwyczaj przy ORACL'u, ale nie potrafie dojsc dlaczeg wyniki mi sie nie zgadzaja ![]() plz hlp. wedlog mnie.. to sa duchy 8O |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
a mozesz dokladnie zacytowac te trzy zapytania ? bo na pierwsza mysl ze gdzies masz literowke / cos podobnego
nie powtarza cie sie tam czasem tel1 ktore group by laczy wtedy w jeden wiersz ? ![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Wywal group by powinno być wtedy tyle samo.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 141 Pomógł: 0 Dołączył: 24.07.2003 Ostrzeżenie: (10%) ![]() ![]() |
hej, dzieki za zainteresowanie sie moim tematem.
do uboottd: zapytanie 1 [sql:1:aafb2826c4] "SELECT tel1, sum(impuls), data, operatOR FROM bil WHERE io = 7 AND operator = 501 AND data = 110703 GROUP BY tel1 "; [/sql:1:aafb2826c4] wynik 739 wierszy [sql:1:aafb2826c4] "SELECT tel1, sum(impuls), data, operatOR FROM bil WHERE io = 7 AND operator = 505 AND data = 110703 GROUP BY tel1 "; [/sql:1:aafb2826c4] wynik 451 wierszy [sql:1:aafb2826c4] "SELECT tel1, sum(impuls), data, operatOR FROM bil WHERE io = 7 AND operator = 509 AND data = 110703 GROUP BY tel1 "; [/sql:1:aafb2826c4] wynik 40 wierszy co w sumie daje 1230. i w sumie wyniki tych 3 zapytan powinny dac wynik taki sam jak to zapytanie: [sql:1:aafb2826c4] "SELECT tel1, sum(impuls), data, operatOR FROM bil WHERE io = 7 AND (operator = 501 OR operator = 505 OR operator = 509) AND data = 110703 GROUP BY tel1 "; [/sql:1:aafb2826c4] wynik 1158 wierszy ..ale nie daje. ![]() do adwol: nie moge usunac GROUP BY, bo uzywam funkcji SUM(). Bez GROUP BY niezadziala ![]() Nie mowie, ze sie znam, ale wedlug mnie potrzebni sa pogromcy duchow, bo to jest jakis absurd |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 31.01.2003 Skąd: piękne, czyste, pachnące Katowice Ostrzeżenie: (0%) ![]() ![]() |
Nie mam pojęcia czemu to Ci nie działa, ale spróbuj tak:
[sql:1:82eaef8a5f] "SELECT tel1, sum(impuls), data, operatOR FROM bil WHERE io = 7 AND operatOR in(501, 505, 509) AND data = 110703 GROUP BY tel1 "; [/sql:1:82eaef8a5f] i zobacz co zwróci. Poza tym IN jest wydajniejsze, bo w przeciwieństwie do OR wykorzystuje indeksy. -------------------- janek
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 141 Pomógł: 0 Dołączył: 24.07.2003 Ostrzeżenie: (10%) ![]() ![]() |
same shit
![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat nie moge usunac GROUP BY, bo uzywam funkcji SUM(). Bez GROUP BY niezadziala
![]() Nie mówie żebyś usunął to produkcyjnie tylko usunął na chwile i zobaczył wynik. To nie są żadne duchy, tylko akurat masz takie dane, że dostajesz taki efekt. Jest to całkiem normalne. Sprawdź czy nie masz kilku wierszy, które mają tę samą wartość pola tel1 i różne wartości pola operator, bo wydaje mi się, że masz. Wtedy GROUP BY w oddzielnych zapytaniach będzie wielokrotnie zliczało tą samą grupę co da zawyżony wynik, a w jednym sklei wszystkie te wiersze w jeden. Niezależnie od tego czy dopuszczasz taką sytuację z punktu widzenia formalnego, technicznie jest to możliwe. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 141 Pomógł: 0 Dołączył: 24.07.2003 Ostrzeżenie: (10%) ![]() ![]() |
coz...jest dokladnie tak jak mowisz... w glowie mi sie gotuje...
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.07.2025 - 14:08 |