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[/quote]
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:Kod:
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 nullale pokazuje mi:
ilość kwota1 = 5
ilość kwota2 = 5
Czyli suma wszystkich.
Był bym wdzięczny za pomoc.
debbie
[color=blue]Wrócę jak zjem zupę i drugie danie - tyle[/color]
[color=blue]a oto ta zupa:[/color]
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
[quote=ponury_kostek]Spróbuj czegoś takiego
SELECT SUM(IF(kwota1, 1, 0)) AS k1, SUM(IF(kwota2, 1, 0)) AS k2 FROM tabelka
[/quote]
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
[quote=kamikaze][quote=ponury_kostek]Spróbuj czegoś takiego
SELECT SUM(IF(kwota1, 1, 0)) AS k1, SUM(IF(kwota2, 1, 0)) AS k2 FROM tabelka
[/quote]
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ń ;][/quote]
Hmm, u mnie zadziałało tak jak trzeba, nie wrzucał bym przecież bez sprawdzenia :P
Offline
[quote=ponury_kostek][quote=kamikaze][quote=ponury_kostek]Spróbuj czegoś takiego
SELECT SUM(IF(kwota1, 1, 0)) AS k1, SUM(IF(kwota2, 1, 0)) AS k2 FROM tabelka
[/quote]
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ń ;][/quote]
Hmm, u mnie zadziałało tak jak trzeba, nie wrzucał bym przecież bez sprawdzenia :P[/quote]
Jasne, ale pewnie masz na kolumnach NOT NULL, a debbie najwyraźniej nie ma. Ale już nas chyba olał, bo się nie odzywa.
Offline
[quote=kamikaze]Jasne, ale pewnie masz na kolumnach NOT NULL, a debbie najwyraźniej nie ma. Ale już nas chyba olał, bo się nie odzywa.[/quote]
No właśnie nie mam, a nawet jak ustawie NOT NULL to nic to nie zmienia w działaniu tego zapytania.
Offline
[quote=ponury_kostek][quote=kamikaze]Jasne, ale pewnie masz na kolumnach NOT NULL, a debbie najwyraźniej nie ma. Ale już nas chyba olał, bo się nie odzywa.[/quote]
No właśnie nie mam, a nawet jak ustawie NOT NULL to nic to nie zmienia w działaniu tego zapytania.[/quote]
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
Time (s) | Query |
---|---|
0.00030 | SET CHARSET latin2 |
0.00005 | SET NAMES latin2 |
0.00203 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.59.165' WHERE u.id=1 |
0.00109 | UPDATE punbb_online SET logged=1716054618 WHERE ident='3.145.59.165' |
0.00077 | SELECT * FROM punbb_online WHERE logged<1716054318 |
0.00159 | DELETE FROM punbb_online WHERE ident='185.191.171.6' |
0.00136 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=20029 AND t.moved_to IS NULL |
0.00010 | SELECT search_for, replace_with FROM punbb_censoring |
0.00371 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=20029 ORDER BY p.id LIMIT 0,25 |
0.00180 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=20029 |
Total query time: 0.0128 s |