TomASS
3.04.2006, 16:18:16
Mam tabelę przypuśćmy, że 'zamówienia' i teraz mam w niej pole STATUS, oto możliwości statusów:
- zamówione
- do załadunku
- po załadunku
- dostarczono
i teraz chciałbym ze względu na te pole sortować, ale w taki sposó by np. użytkownik magazynier na górze miał 'do załadunku' a na końcu 'po załadunku' - bo to dla niego istotne, z kolei użytkownik 'kontroler' chciałby mieć na początku 'dostarczono' - bo te rekordy są dla niego najważniejsze. Wprowadzenie dodatkowego pola do sortowania nic nie da, ponieważ bym musiał dodać dwa takie pola - dla kontrolera i dla magazyniera, ale co będzie jeśli rodzaji użytkowników będzie 10? Nie za bardzo mi się widzi z każdym dodawaniem nowego rodzaju użytkownika dodawanie kolumny do całej bazy :/
Zapewne w oddzielnej tabelce trzymasz użytkoników, to tam dorób jedno pole, które pozwoli Ci rozpoznać jak 'on' ma mieć dane wyświetlane.
spenalzo
3.04.2006, 18:03:53
może coś takiego...
SELECT CASE WHEN STATUS WHEN 'do zaladunku' THEN 1 WHEN 'costam' THEN 2 WHEN 'cos innego' THEN 3 WHEN 'dostarczono' THEN 4 END AS status_sort
FROM ......
ORDER BY status_sort
powinno działać.
Edit: eh, chyba kiepsko doczytałem, bo zdaje sie, że nie o to chodziło - ale masz wskazówkę jak można by to rozwiązać.
TomASS
3.04.2006, 21:51:01
No właśnie chodzi mi o takie rozwiązanie przy którym nie musiałbym nic dodawać w przypadku dodania nowego typu użytkownika. Szkoda, że nie można podać funkcji sortującej po ORDER BY tak jak w przypadku
usort dla php :/
spenalzo
4.04.2006, 06:13:12
Ale do usort i tak musialbyś dodać odpowiedni warunek sortowania dla nowego użytkownika