2016-09-15 9 views
-6

Meine Felder sind id, name, date_confirm(yyyy-mm-dd h:i:s). Ich möchte Anzahl der Datensätze im Sommer oder Winter bestätigt bekommen oder .... Ergebnis zum Beispiel:Wie bekomme ich die Anzahl der Datensätze in einer Saison

18|summer 2015

17|Autumn 2015

0|winter 2015

1|spring 2016

wie durch Spalte für diese Gruppe?

+0

diese mysql oder SQL-Server? Sie haben beide markiert –

+0

das ist mysql .. – MJH

+0

Geben Sie einige Beispieldaten und was die Anfangs- und Enddaten sind für jede Jahreszeit – kbball

Antwort

0
select count(id) 
from yourTable 
where 
    date(date_confirm) between date(seasonBegin) and date(seasonEnd) 
; 

können Sie diese werfen in den Körper eines Verfahrens und dann den Anfang und das Ende der Saison passieren Sie suchen, basierend darauf, wie Ihre Anwendung definiert Jahreszeiten. Ich entschied mich, auf das ID-Feld zu zählen, da es das einzige ist, von dem ich annehmen kann, dass es nicht null ist.

+0

Dies ist nicht wahr.Ich möchte Ergebnis in einer Abfrage erhalten. – MJH

+0

Vielleicht sollten Sie Ihre Frage bearbeiten, um das Wort anstelle von oder zu verwenden – justindevs

0
select count(1) ,name 
from yourtable 
group by name 
0
SELECT 
SUM(CASE WHEN date_confirm BETWEEN(begindate, enddate)THEN 1 ELSE 0 END) AS Confirmed_Summer2015 
,SUM(CASE WHEN date_confirm BETWEEN(begindate, enddate)THEN 1 ELSE 0 END) AS Confirmed_Autumn2015 
--Keep adding more seasons if needed 
FROM TableName 

Und halten genau das Muster nach dem Beginn mit und Enddaten von egal zu welcher Jahreszeit Sie interessiert sind.

Verwandte Themen