Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] Pomoc w budowie selecta zwracającej %
neverever
post
Post #1





Grupa: Zarejestrowani
Postów: 278
Pomógł: 44
Dołączył: 17.02.2004
Skąd: Wieliczka

Ostrzeżenie: (10%)
X----


mam mały zgryz ze zbudowaniem selecta zwracającego wynik w %.

Mam taką oto tabelę
pola: TYP, PODTYP (przyjmują wartość w zakresie 1-99), VAR1, VAR2, VAR3 (wartość 1 lub 2)
Rekordów takich docelowo będzie całkiem sporo.

Teraz chcę zrobić coś takiego, że wybieram sobie TYP i PODTYP i dla nich zwraca mi:
ile % VAR1 = 1
ile % VAR2 = 1
ile % VAR3 = 1

Jak coś takiego zrobić w jednym zapytaniu?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. SET @ile = (SELECT count(typ) FROM tabela WHERE typ=99 AND podtyp=34);
  2. SELECT (count(p1)/@ile), (count(p2)/@ile), (count(p3)/@ile) FROM tabela WHERE Typ=99 AND PODTYP=34

Pisane z palca. Nie jest to w jednym zapytaniu, ale wydajniej niż robić podzapytanie do każdej kolumny.

Jeszcze to sprawdzę.

edit: możesz jeszcze coś z tym kombinować:
  1. SET @ile = (SELECT count(typ) FROM tabela WHERE typ=99 AND podtyp=34);
  2. SELECT (sum(p1)/@ile), (sum(p2)/@ile), (sum(p3)/@ile) FROM tabela WHERE Typ=99 AND PODTYP=34


Jeśli koniecznie chcesz w jednym, to zmień @ile na count(kolumna). Ale to wyliczy tylko 0/1.
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: 16.10.2025 - 10:01