Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SELECT COUNT, 2x WHERE?
fiszol
post
Post #1





Grupa: Zarejestrowani
Postów: 453
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


Mam dwa zapytania:
  1. SELECT COUNT(1) AS loot FROM tblname WHERE uid = xx AND item_id != 0;
  2. SELECT COUNT(1) AS spent FROM tblname WHERE uid = xx AND item_id = 0 AND mod_value < 0

Da się wyjąć te county w jednym zapytaniu?

Ten post edytował fiszol 19.07.2013, 20:59:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Doldox
post
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 5.11.2013

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


Witam serdecznie,
posiadam problem, z którym niestety nie poradziłem sobie sam. Z internetu tak jak Kolega Fiszol wygooglowałem połowiczne rozwiązanie prezentacji zapytania jakie mnie interesuje.

W sumie to rozwiązań mojego problemu może być dwa, ale od poczatku.

Opcja rozwiązania nr1:

Moje zapytanie SQL to:
  1. SELECT
  2. (
  3. SELECT count(`Wynik`)
  4. FROM `Historia2`
  5. WHERE `Wynik`="Zdany"
  6. ) AS Zdanych,
  7. (
  8. SELECT count(`Wynik`)
  9. FROM `Historia2`
  10. WHERE `Wynik`="Oblany"
  11. ) AS Oblanych

Które jest oczywiście podobne do Kolegi Fiszol'a.
Wynikiem zapytania jest:
Kod
Zdanych Oblanych
6     2

Problem w tym, że chciałbym mieć informacje z podziałem na nazwiska ludzi biorących udział w testach.
Czyli np:
Kod
Człek    Zdanych    Oblanych
Kowalski    3    0
Nowak    0    1
Iksiński    3    1

Tego niestety nie potrafię zrobić. Wynik jaki dostaje po swoich kombinacjach to:
Kod
Człek    Zdanych    Oblanych
Kowalski    6    2
Nowak    6    2
Iksiński    6    2

a zapytanie to:
  1. SELECT Pracownik,
  2. (
  3. SELECT count(`Wynik`)
  4. FROM `Historia2`
  5. WHERE `Wynik`="Zdany"
  6. ) AS Zdanych,
  7. (
  8. SELECT count(`Wynik`)
  9. FROM `Historia2`
  10. WHERE `Wynik`="Oblany"
  11. ) AS Oblanych
  12. FROM `Historia2`
  13. GROUP BY `Historia2`

Opcja rozwiązania nr2:
Skoro posiadam liczbę testów danego człowieka, wystarczy, że wyciągnę ilość albo zdanych albo oblanych i odejmę ją od całości, w ten sposób w PHP już sobie spokojnie policze, ale problem jest taki, że nie wyświtla mi wartości zerowej. Czyli korzystając z kodu:
  1. SELECT count(`Wynik`)
  2. FROM `Historia2`
  3. WHERE `Wynik`="Zdany"

Wyświetli mi tylko dwóch Panów z przykładu powyżej - i nici z odejmowania..

Pomocy (IMG:style_emoticons/default/sad.gif)

Pozdrawiam,
Doldox

Ten post edytował Doldox 7.11.2013, 13:17:10
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.10.2025 - 19:05