Kysymys: Kuinka saan luettelon niistä (esim. vuokratalon) huoneistoista, joissa ei ole ollut maksajaa esim. tietyssä kuussa?
Vastaus: Katsotaan Laskurivit-taulukosta nollasummaiset SQL-kyselytilastollaseuraavasti:
SELECT * FROM (SELECT Huoneistot.[Porras ja huoneisto], Sum(Laskurivit.Summa)
AS Laskutettu FROM Huoneistot INNER JOIN Laskurivit ON Laskurivit.Huoneisto
= Huoneistot.ID WHERE CDate(Laskurivit.Eräpäivä) BETWEEN
DateValue('%1') AND DateValue('%2') GROUP BY Huoneistot.[Porras ja huoneisto])
WHERE Laskutettu = 0 UNION *SELECT * FROM (SELECT Huoneistot.[Porras ja
huoneisto], Count(Eräpäivä) AS Laskutettu FROM Huoneistot
INNER JOIN Laskurivit ON Laskurivit.Huoneisto = Huoneistot.ID WHERE NOT
ISNULL(Laskurivit.Eräpäivä) AND CDate(Laskurivit.Eräpäivä)
BETWEEN DateValue('%1') AND DateValue('%2') GROUP BY Huoneistot.[Porras
ja huoneisto]) WHERE Laskutettu = 0 UNION *SELECT * FROM (SELECT Huoneistot.[Porras
ja huoneisto], Count(Eräpäivä) AS Laskutettu FROM Huoneistot
INNER JOIN Laskurivit ON Laskurivit.Huoneisto = Huoneistot.ID WHERE ISNULL(Laskurivit.Eräpäivä)
GROUP BY Huoneistot.[Porras ja huoneisto]) WHERE Laskutettu = 0 UNION *SELECT
[Porras ja huoneisto], 0 AS Laskutettu FROM Huoneistot WHERE ID NOT IN
(SELECT Huoneisto FROM Laskurivit WHERE CDate(Laskurivit.Eräpäivä)
BETWEEN DateValue('%1') AND DateValue('%2') GROUP BY Huoneisto)
Kysymys %1 on ensimmäinen mukaan otettava eräpäivä
Kysymys %2 on viimeinen mukaan otettava eräpäivä
Kysely ottaa mukaan samalle listaukselle
Huom! Jos Sinulla on jossakin kuussa esim. lukemalaskuja (esim. eräpäivällä 18.11.2020), ne estävät huoneistoa näkymästä tyhjänä, jos otat listauksen esim. 1.11.2020-30.11.2206. Ota sen sijaan listaus tarkalta normaalivuokrien eräpäivältä, esim. 5.11.2020 5.11.2020, jolloin saat listalle ne, jotka ovat nollaa normaalivuokrien osalta.