2011-08-28 9 views
6

Podczas tworzenia przykładowej strony szczegółów, po prostu utknąłem w naprawdę mylącej sytuacji. Co tak naprawdę chce zrobić to tak:php i mysql pobierają dane według roku i daty! struktura stołu?

+----------------------------------------------------+ 
+ Year | Month | Date  | Total Gain + 
+----------------------------------------------------+ 
+ 2003 | January | 26/01/2003 | +90 %    + 
+ 2003 | January | 27/01/2003 | +10 %    + 
+ 2003 | Feburary| 01/02/2003 | -29 %    + 
+ 2003 | Feburary| 15/02/2003 | +0.52 %   + 
+----------------------------------------------------+ 

co faktycznie chcę jest to, że mogę wymienić nazwy miesiąc i rok mądry jak mysql_query('SELECT month FROM mytable WHERE year="2003"');

Ale problemem jest to, że pokazuje stycznia dwa razem. Chcę wyświetlić 1 stycznia jeden raz i link obok niego, który przeniesie na następną stronę. Spowoduje to wyświetlenie statystyk ze stycznia.

+0

można udostępnić strukturę tabeli? –

Odpowiedz

4

myślę co szukacie jest DISTINCT zapytań, tj

SELECT DISTINCT year, month FROM mytable 
+0

TAK, dokładnie osiąga prawie, ale wyświetla tylko nazwę miesiąca, np. Zapytanie mysql_query (WYBIERZ DISTINCT miesiąc z Mytable) i co jeśli chcę pokazać nazwę miesiąca i nazwę roku jak w tabeli Miesiąc/Rok, używając tego zapytanie tylko zakładam nazwę miesiąca, ale nie mogę uzyskać nazwy roku, ponieważ jestem nastawiony na konkretny miesiąc! – Ahsan

+2

Distinct wyświetli takie same wyniki od daty, a całkowite wzmocnienie będzie różne. –

+1

Cóż, musisz opisać lepiej to, co chcesz osiągnąć, nie jest to dla mnie jasne ... – ain

5

Może powinieneś użyć GROUP BY klauzula i oblicza całkowity zysk, jak również.

(Ponieważ struktura tabeli nie jest określony, to myślę, że tutaj)

SELECT `Year`, `Month`, SUM(gain) AS 'Total Gain +' FROM table GROUP BY month, year; 
+2

to pomogło mi również :) – Ahsan

+0

@ Ahsan Wspaniale, że dostałeś odpowiedź, ale jestem zdezorientowany - czy moja odpowiedź była właściwa, czy książka BookOfezeusa (którą teraz uznałeś za akceptowaną)? – ain