Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL] "Widełki" cenowe z ceną promocyjną
qqrq
post
Post #1





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

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


Witam wszystkich

Mam taką sytuację - jest sobie tabela "produkt", w niej m. in. pola "cena" i "cena_promocyjna". Jeżeli "cena_promocyjna" jest ustawiona na "0", to ceną produktu jest wartość pola "cena", jeśli nie ceną produktu jest "cena_promocyjna", np.:

Produkt: "kosiarka"; cena = 120, cena_promocyjna = 0 => cena produktu to 120 zł
Produkt: "piła"; cena = 150, cena_promocyjna = 110 => cena produktu to 110 zł

Teraz chciałbym jednym zapytaniem wyciągnąć produkty znajdujące się pomiędzy widełkami cenowymi, na przykład "X" i "Y" (X < Y). Dodatkowo dochodzi rabat, na przykład "R", który jest stały dla użytkownika, ale nalicza się go tylko dla cen "nie-promocyjnych". Na przykład, jeśli R=20 (20 procent), to

"kosiarka" => cena produktu to cena*(1-R/100) = 120*0,8 = 96 (zł)
"piła" => cena produktu to cena_promocyjna = 110 zł

Normalnie, bez ceny promocyjnej, wyglądałoby to pewnie mniej więcej tak:

SELECT * FROM produkt WHERE cena*R BETWEEN X AND Y;

A jak to zrobić dla w/w warunków? Ja już się gubię... Eny ajdias?

Ten post edytował qqrq 21.08.2008, 11:34:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
elemek
post
Post #2





Grupa: Zarejestrowani
Postów: 71
Pomógł: 24
Dołączył: 14.08.2008

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


Cytat(qqrq @ 21.08.2008, 12:34:09 ) *
Witam wszystkich

Mam taką sytuację - jest sobie tabela "produkt", w niej m. in. pola "cena" i "cena_promocyjna". Jeżeli "cena_promocyjna" jest ustawiona na "0", to ceną produktu jest wartość pola "cena", jeśli nie ceną produktu jest "cena_promocyjna", np.:

Produkt: "kosiarka"; cena = 120, cena_promocyjna = 0 => cena produktu to 120 zł
Produkt: "piła"; cena = 150, cena_promocyjna = 110 => cena produktu to 110 zł

Teraz chciałbym jednym zapytaniem wyciągnąć produkty znajdujące się pomiędzy widełkami cenowymi, na przykład "X" i "Y" (X < Y). Dodatkowo dochodzi rabat, na przykład "R", który jest stały dla użytkownika, ale nalicza się go tylko dla cen "nie-promocyjnych". Na przykład, jeśli R=20 (20 procent), to

"kosiarka" => cena produktu to cena*(1-R/100) = 120*0,8 = 96 (zł)
"piła" => cena produktu to cena_promocyjna = 110 zł

Normalnie, bez ceny promocyjnej, wyglądałoby to pewnie mniej więcej tak:

SELECT * FROM produkt WHERE cena*R BETWEEN X AND Y;

A jak to zrobić dla w/w warunków? Ja już się gubię... Eny ajdias?


  1. SELECT * FROM produkt WHERE (cena_promocyjna = 0 AND cena*(1-R) BETWEEN x AND y) OR (cena_promocyjna != 0 AND cena_promocyjna BETWEEN x AND y)
Go to the top of the page
+Quote Post
LBO
post
Post #3





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Kod
cena*(100-R/100)
Go to the top of the page
+Quote Post
qqrq
post
Post #4





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

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


Cytat(elemek @ 21.08.2008, 12:39:46 ) *
  1. SELECT * FROM produkt WHERE (cena_promocyjna = 0 AND cena*(1-R) BETWEEN x AND y) OR (cena_promocyjna != 0 AND cena_promocyjna BETWEEN x AND y)


Dzięks, oczywista oczywistość, jak mówią niektórzy. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

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: 23.08.2025 - 19:26