Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Access] Niet voldoen aan restrictie, toch tonen m.nulwaarde

Pagina: 1
Acties:

  • pjcra
  • Registratie: September 2003
  • Laatst online: 09-09-2020
Ik heb één tabel bestaande uit 3 kolommen: Naam (=SB_CV) / Premie/ Datum.

Als ik een querie doe waarbij hij de namen groepeert en de som neemt van het geld met de restrictie alles te nemen voor of na een bepaalde datum, krijg ik in sommige gevallen niet alle namen. Bv. Is er een naam die geen bedrag heeft staan na een bepaalde datum. Dus als ik die restrictie invoer, krijg ik die persoon niet in mijn lijstje. Graag had ik die persoon wel in het lijstje gezien, met 0 EUR.

Mijn SQL code is de volgende:

SELECT [NB Sales Final].sb_cv, Sum([NB Sales Final].Premie) AS Premie, Count([NB Sales Final].polis) AS Aantal, Sum([NB Sales Final]![Premie])/Count([NB Sales Final]![polis]) AS Gem_Premie
FROM [NB Sales Final]
WHERE ((([NB Sales Final].aanvangpolis)>#12/31/2009#))
GROUP BY [NB Sales Final].sb_cv
ORDER BY [NB Sales Final].sb_cv;

  • Witte
  • Registratie: Februari 2000
  • Laatst online: 15-10 13:46
Je kan in pseudocode zoiets doen, voor de optelling van het bedrag:
code:
1
SUM(IIF(datum >= testdatum;bedrag;0))


en voor een telling:
code:
1
SUM(IIF(datum >= testdatum;1;0))


Uiteraard moet je dan wel de WHERE-clause weglaten!

PS: Ik zou je aanraden om géén spaties te gebruiken in veldnamen en tabelnamen. Dat maakt een query lezen veel gemakkelijker. [ en ] zijn dan niet meer nodig. Ook de veldnaam Aantal is wat tricky.

[ Voor 76% gewijzigd door Witte op 09-10-2009 15:21 ]

Houdoe


  • pedorus
  • Registratie: Januari 2008
  • Niet online
Ik zou hier toch eerder een left join gebruiken, als in:
SQL:
1
2
3
4
5
6
SELECT s1.sb_cv, Sum(s2.Premie) AS Premie, Count(s2.polis) AS Aantal, 
    Avg(s2.[Premie]) AS Gem_Premie
FROM [NB Sales Final] as s1 left join [NB Sales Final] as s2 
    on (s1.sb_cv=s2.sb_cv and (((s2.aanvangpolis)>#12/31/2009#))
GROUP BY sb1.sb_cv
ORDER BY sb1.sb_cv;

Je hebt trouwens stiekem meer dan 3 kolommen :?

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten