Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z zapytaniem do bazy., Chyba z ' ' albo " ".
sawic
post 28.02.2006, 18:17:28
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 24.05.2005

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


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 ?

Ten post edytował sawic 28.02.2006, 18:20:40
Go to the top of the page
+Quote Post
nospor
post 28.02.2006, 18:19:17
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sawic
post 28.02.2006, 18:26:38
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 24.05.2005

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


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

Ten post edytował sawic 28.02.2006, 18:27:41
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.07.2025 - 02:18