Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] Podwójny ORDER BY
neoangin
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 11.07.2006
Skąd: Olsztyn

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


Witam, mam problem z napisaniem zapytania mysql. OPiszę najpierw co chciałbym osiagnac.

Chce wyświetlić posortowane firmy, które sa w katalogu wedle dwóch kreteriów. PIerwszy to data dodania , drugi data dokonania ostatniej platnosci. Wartosci tych pol mam wySELECTowane:

  1. SELECT ... c.createDate , MAX(cp.paymentDate) AS maxDate ...


I chodzi mi o to zeby na stronie glownej portalu na gorze pojawialy się firmy na zasadzie:

Każda firma przedłużająca pakiet (czyli placaca za niego) pokazuje się po przedłużeniu jako PIERWSZA – Ważne – NA STRONIE GŁÓWNEJ portalu . Tak samo jak to jest z firmami nowododającymi się.

Domyslam sie ze musze uzyc formuly "IF" , ale moze sie myle. Czy ktoś może pomóc?

  1. ORDER BY c.createDate DESC, maxDate DESC
.. ? - takie zapytanie nie dziala poprawnie gdyz tylko pierwszy ORDER jest brany pod uwage

Ten post edytował neoangin 30.06.2011, 18:57:56
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
neoangin
post
Post #2





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 11.07.2006
Skąd: Olsztyn

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


Wszystkie firmy istnieją. Chodzi o to że niektóre nowododane są "w okresie darmowym" - czyli nie mają daty płatności żadnej. Mam na szczęście flage z widoku, która mi mówi czy jest w okresie darmowym dana firma:

cs.isFreePeriod = 1 gdy w darmowym,
cs.isFreePeriod = 0 gdy nie w darmowym


idąc tropem dokumentacji : http://dev.mysql.com/doc/refman/5.0/en/con...function_ifnull
myślę , że mogę użyć klauzuli CASE:

  1. SELECT
  2. ...
  3. (CASE cs.isFreePeriod WHEN 1 THEN c.createDate ELSE MAX(cp.paymentDate)) AS szukanyDate,
  4. ...

- tylko blędy mi sypie phpmyadmin, pewnie cos z ''. Skoryguje ktos?

Ten post edytował neoangin 30.06.2011, 20:00:13
Go to the top of the page
+Quote Post

Posty w temacie


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: 27.12.2025 - 14:15