SQL MIN met Case expression

Status
Niet open voor verdere reacties.

Tigris6

Nieuwe gebruiker
Lid geworden
7 nov 2017
Berichten
4
goedemiddag,

ik hoop dat jullie mij verder kunnen helpen met het volgende:

ik heb onderstaande tabel:
NR DATUM STATUS VV DEBNAAM
1 20-6-2017 270 a
2 20-7-2017 260 4 a
3 30-11-2017 260 a
4 NULL 40 a
5 5-2-2018 260 a

daarbij het het volgende statement:

SELECT
DEBNAAM, COUNT(NR) as 'aantal', MIN(NULLIF (DATUM, 0)) as 'eerste datum'
FROM tabel_a
GROUP BY DEBNAAM

Resultaat
DEBNAAM aantal eerste datum
a 5 20-06-2017

ik wil graag als resultaat bij de eerste datum 30-11-2017 zien, ofwel STATUS>260 = NULL of VV >0 = NULL

ik had zelf bedacht om dat als volgt op te lossen, maar krijg daardoor helaas niet het gewenste resultaat.

MIN
(NULLIF
(CASE
WHEN STATUS > 260 THEN NULL
WHEN VV > 0 THEN NULL
ELSE DATUM END)
,0)

Wellicht hebben jullie goede ideeën? alvast bedankt!
 
Code:
SELECT
DEBNAAM, COUNT(NR) as 'aantal', MIN(NULLIF (DATUM, 0)) as 'eerste datum'
FROM tabel_a

WHERE  (STATUS>260 OR STATUS IS NULL)OR(VV=0 OR VV IS NULL)

GROUP BY DEBNAAM


die datum weet ik niet goed waar je naar toe wil??
 
het heeft even geduurd, maar ik heb mijn vraag opgelost:
ik was niet volledig in mijn vraagstelling. ik heb namelijk wel meerdere tabellen.

het is als volgt geworden:
Select Debnaam
(select COUNT(NR)
FROM tabel_a
where NR=deb.nr
group by NR
) AS 'aantal'

(Select MIN(NULLIF (DATUM,0)) as 'datum'
FROM tabel_a
where status = 260 and (STATUS is null or vv=0 or vv is null) and nr=deb.nr
group by NR
) AS 'eerste datum'
From tabel debiteur

Resultaat = 1 regel per debiteur
DebNaam, aantal, eerste datum
a 5 20-06-2017
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan