Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z zapytaniem do bazy.
Forum PHP.pl > Forum > Bazy danych > MySQL
sawic
Witam.
Mam problem z zapytaniem do bazy.
Wyciągam z bazy dwie zmienne i następnie chciałbym dokonać na nich operacji arytmetycznej i wyciągnąć to jako trzecią zmienną. Niestety nie wiem jak to zrobić w jednym zapytaniu.
  1. SELECT pole1 AS costam1, pole2 AS costam2, (costam1 * costam2) AS wynik
  2. FROM db

Jeżeli zrobię 'costam1' * 'costam2' to wynik jest oczywiście NULL, bo wtedy wysyłam stringi do operacji arytmetycznej. Jeżeli tak jak pokazane jest we wlkejonym kodzie, to MySQL wywala błąd, że nia ma kolumn costam1 costam2.
Można to zrobić na dwóch zapytaniach (koniecznie mnożyć muszę w MySQL, bo wynik służy mi jako kryterium sortowania) ale to troche nieelegancko. Jak to wyciągnąć w jednym zapytaniu ?


Pozdrawiam

Edit:
Podstawienie zapytania w wyniku którego otrzymuję zmienną costam1 i costam2 dziala jak nalezy, ale wg mojego przekonania wykonuję to samo (dość skomplikowane) zapytanie 2 razy, a ja chciałbym raz cos mieć jako zmienną a później tego używać. Da się tak ?
nospor
ale kombinacje alpejskie winksmiley.jpg proste jest zazwyczaj najsuteczniejsze:
  1. SELECT pole1, pole2, (pole1 * pole2) AS wynik
  2. FROM db


edit: trzeba bylo od razu pisac oco ci chodzi winksmiley.jpg
sawic
No cóż.
W tym przypadku kombinacje alpejskie są potrzebne gdyż moje zapytanie wygląda mniej więcej tak:
  1. SELECT count(*) AS counted, data_dodania AS DATA, count(CASE WHEN dodany='automatycznie' THEN 1 ELSE NULL END) AS wyniki, (((count(CASE WHEN dodany='automatycznie' THEN 1 ELSE NULL END)) / (count(*))) * 100) AS procent
  2. FROM db.TABLE
  3. WHERE wynik IS NOT NULL AND wynik != 'blad' GROUP BY DATA ORDER BY procent DESC, wyniki DESC LIMIT 1

I chodzi mi o to, że do arytmetyki potrzebuję jeszcze raz robić skomplikowane rzeczy, a te rzeczy są już wcześniej widoczne jako konkretna zmienna.
Kieruję się optymalizacją kodu.
Bo tak zapisane zapytanie działa jak najbardziej.

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.