Witam, mam problem dot. tego jak przechowywać ceny produktów.
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
  1. SELECT p.Nazwa, c.Nazwa, f.Imie, f.Nazwisko, p.Cena, p.CenaOd, p.CenaNeg, c.CategoryId, p.ProductId, p.FirmaId
  2. FROM Product
  3. 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!