Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam,
Mam taki problem! Wie ktoś może jak wykonać zapytanie dzięki któremu wyciągne ilość rekordów z zawartością.
mam coś takiego:
id nazwa kwota1 kwota2
1 test1 2.20 2.40
2 test2 3.40
3 test3 1.30
4 test4 1.20 2.40
5 test5 3.70
I generalnie to wynik miał by być taki:
ilość kwota1 = 4
ilość kwota2 = 3
Pola w bazie kwota1 i kwota2 mają domyślnie wartość not null
próbowałem takich zapytań np:
SELECT count(kwota1) as ilosc, SUM(kwota1) as suma FROM tabelka where kwota1 is not null SELECT count(kwota2) as ilosc, SUM(kwota2) as suma FROM tabelka where kwota2 is not null
ale pokazuje mi:
ilość kwota1 = 5
ilość kwota2 = 5
Czyli suma wszystkich.
Był bym wdzięczny za pomoc.
Offline
Piszesz o zapytaniu, gdzie rezultatem ma być dwie kolumny ilość i suma i piszesz, że "pokazuje ci":
ilość kwota1 = 5
ilość kwota2 = 5
Co to wyżej oznacza? Jest to ilość, czy suma, czy co "ci pokazuje"? Może zrób selecta i wklej dokładnie to co dostajesz, wykonaj w konsoli, skopiuj i wklej. Bo nie idzie się zorientować.
Ostatnio edytowany przez kamikaze (2011-11-09 09:59:32)
Offline
Tzn napisałem ilość. Bo chodzi mi o ilość a sumę dobrze pokazuje dlatego tego nie opisałem.
Ostatnio edytowany przez debbie (2011-11-09 11:36:53)
Offline
Zmień count(kwota1) na count(*) .
Offline
Spróbuj czegoś takiego
SELECT SUM(IF(kwota1, 1, 0)) AS k1, SUM(IF(kwota2, 1, 0)) AS k2 FROM tabelka
Offline
ponury_kostek napisał(-a):
Spróbuj czegoś takiego
Kod:
SELECT SUM(IF(kwota1, 1, 0)) AS k1, SUM(IF(kwota2, 1, 0)) AS k2 FROM tabelka
Nie zadziała, skoro count(kwota1) nie działa, a SUM(IF(kwota1, 1, 0)) to przecież to samo. Pewnie poprzednie zadziałało bo już się nie odzywa, jakby było źle by walił w ogień ;]
Ostatnio edytowany przez kamikaze (2011-11-10 15:58:26)
Offline
kamikaze napisał(-a):
ponury_kostek napisał(-a):
Spróbuj czegoś takiego
Kod:
SELECT SUM(IF(kwota1, 1, 0)) AS k1, SUM(IF(kwota2, 1, 0)) AS k2 FROM tabelkaNie zadziała, skoro count(kwota1) nie działa, a SUM(IF(kwota1, 1, 0)) to przecież to samo. Pewnie poprzednie zadziałało bo już się nie odzywa, jakby było źle by walił w ogień ;]
Hmm, u mnie zadziałało tak jak trzeba, nie wrzucał bym przecież bez sprawdzenia :P
Offline
ponury_kostek napisał(-a):
kamikaze napisał(-a):
ponury_kostek napisał(-a):
Spróbuj czegoś takiego
Kod:
SELECT SUM(IF(kwota1, 1, 0)) AS k1, SUM(IF(kwota2, 1, 0)) AS k2 FROM tabelkaNie zadziała, skoro count(kwota1) nie działa, a SUM(IF(kwota1, 1, 0)) to przecież to samo. Pewnie poprzednie zadziałało bo już się nie odzywa, jakby było źle by walił w ogień ;]
Hmm, u mnie zadziałało tak jak trzeba, nie wrzucał bym przecież bez sprawdzenia :P
Jasne, ale pewnie masz na kolumnach NOT NULL, a debbie najwyraźniej nie ma. Ale już nas chyba olał, bo się nie odzywa.
Offline
kamikaze napisał(-a):
Jasne, ale pewnie masz na kolumnach NOT NULL, a debbie najwyraźniej nie ma. Ale już nas chyba olał, bo się nie odzywa.
No właśnie nie mam, a nawet jak ustawie NOT NULL to nic to nie zmienia w działaniu tego zapytania.
Offline
ponury_kostek napisał(-a):
kamikaze napisał(-a):
Jasne, ale pewnie masz na kolumnach NOT NULL, a debbie najwyraźniej nie ma. Ale już nas chyba olał, bo się nie odzywa.
No właśnie nie mam, a nawet jak ustawie NOT NULL to nic to nie zmienia w działaniu tego zapytania.
Tak, jemu nie działa bo nie ma NOT NULL, a zamiast tego ma DEFAULT NULL (w sumie to tylko podejrzenie), więc ma tam NULL-e i COUNT na kolumnie i tak to zliczy. Ty używasz IF i to będzie działać, masz racje, moja pomyłka.
Offline
Strony: 1