Anzahl Datensätze Zählen und per Monat ausgeben

Termos

Mitglied
Hallo Community,

hab irgend wie n Problem mit nem Count / group by / subselect

folgende Tabelle:

ID INSDATE ANP_GLUEHEN
1 01.01.2013 10111
2 01.01.2013 10111
3 01.01.2013 10111
4 01.01.2013 10222
5 02.01.2013 20111
6 02.01.2013 20111
7 02.01.2013 20222
8 02.01.2013 20333


Raus kommen soll

Datum Anzahl
01.01.2013 2
02.01.2013 3



Mein vorgehen bis jetzt waren verschiedene SubSelects's // Distincts // Self Joins etc bla bla ;/

SQL:
select DISTINCT  CONVERT(varchar(10),INSDATE,104) as x, COUNT(ANP_GLUEHCHARGE)
FROM AGTRANSPORT
WHERE ANP_GLUEHCHARGE IN (
	SELECT ANP_GLUEHCHARGE
	FROM AGTRANSPORT
	WHERE INSDATE > '01.01.2013'
	GROUP BY ANP_GLUEHCHARGE
	)
	AND STARTDATUM > '01.01.2013' AND STARTDATUM < '31.12.2013' AND ANP_GLUEHCHARGE IS NOT NULL AND CONVERT(varchar(10),INSDATE,104) = '02.01.2013'
	
group by INSDATE, ANP_GLUEHCHARGE
 
Ganz einfach. COUNT(DISTINCT ..)
SQL:
SELECT
    insdate,
    COUNT(DISTINCT anp_gluehen) AS anzahl
FROM
    agtransport
GROUP BY
    insdate
 
Zuletzt bearbeitet von einem Moderator:
Das hab ich leider auch schon probiert ;(

SQL:
SELECT
    convert(varchar(10),insdate,104) AS Tag,
    COUNT(DISTINCT ANP_GLUEHCHARGE) AS Anzahl
FROM
    agtransport
WHERE INSDATE > '01.01.2013' AND INSDATE < '31.12.2013' AND ANP_GLUEHCHARGE IS NOT NULL
GROUP BY
    INSDATE


Dabei kommt dann

01.01.2013 1
01.01.2013 1
01.01.2013 1
02.01.2013 2
02.01.2013 1


raus ;/

Liegts evtl am Convert? Die insdate ist ne TIMESTAMP Spalte ...
 
Was für eine Datenbanksystem hast du?
In welchem Format wird insdate gespeichert?

Ev. musst du das 'CONVERT(VARCHAR(10),insdate,104)' auch im GROUP BY machen, damit nach dem Gruppiert wird, was du auch ausgibst.
 
Zurück