Cena może być równa jakiejś wartości, może się pojawić zapis cena od ..., a także cena moze być 'do negocjacji' zrobiłem sobie 3 pola w tabeli i w odpowiednie pole wpisuje wartosc liczbową.. potem podczas wyświetlania jeśli wartosć z pola CENA == '0' to sprawdzam następną i np. jeśli jest wartość w polu cenaOd to do wartości dopisuje od i wyświetlam sformatowaną, jesli cena ma być do negocjacji w tabeli cenaNeg wpisuje 99 (de facto można by zrezygnować z tego pola i poprostu sprawdzić czy cena i cenaOd są równe 0 jeśli tak to wtedy wpisać cene do negocjacji)
Problem jest z sortowaniem takich produktów wg. cen.
Potrzebuje wyświetlić ceny rosnąco, ale:
- najpierw mają sie pojawić ceny, które są określone dokladnie, potem powinny sie pojawić ceny od, a na końcu produkty z cenami do negocjacji.
póki co mam takie zapytanie
SELECT p.Nazwa, c.Nazwa, f.Imie, f.Nazwisko, p.Cena, p.CenaOd, p.CenaNeg, c.CategoryId, p.ProductId, p.FirmaId FROM Product p JOIN Category c ON p.CategoryId = c.CategoryId JOIN Company f ON f.FirmaId = p.FirmaId ORDER BY c.Pozycja, f.Nazwisko
ale ono nie uwzględnia ceny.
Całość wyników jest jeszcze podzielona na grupy produktów.. Każdy produkt jest przydzielony do jakiejś grupy i wyświetlane jest wg. właśnie tychże grup.
Ma ktoś jakis pomysł jak to rozwiązac?
No i rozwiązałem.
Zmieniłem strukture bazy danych. W tej chwili wszystkie ceny są zapisywane w polu Price. Dodatkowo aby rozróżnic te ceny dodaje do nich przedrostek:
- ceny z najwyższym priorytetem (acena)
- ceny, które mają być drugie (dcena)
- i ceny do uzgodnienia mają wartość x, nie ma problemu sortować takich wartości (zakładając oczywiście, ze chce je sortować tak jak napisałem na wstępie).
Prosze o zamknięcie!