Aantallen tellen in een tabel, maar exclude data van ander
Ik heb 2 tabellen.
A:
id
datetime
serial
type
B:
id
datetime
serial
type
Nou wil ik het aantal serial nummers hebben uit tabel A met type "C" van vorige maand (whatever maakt even niet uit, kan in voorbeeld zelfs weg gelaten worden)
MAAR
de serienummers die in B voorkomt moet ik NIET meetellen..
Nou doe ik het met 2 losse queries.
Code (php)
1
SELECT COUNT(serial) FROM A WHERE type = "C" AND (DATEPART(week, datetime) = 15 OR DATEPART(week, datetime) = 16 OR DATEPART(week, datetime) = 17 OR DATEPART(week, datetime) = 18) AND DATEPART(yyyy, datetime) = 2020
Nou moeten alleen de serienummers die ook nog in B voorkomen er vanaf.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
SELECT COUNT(a.[t_serial])
FROM A a
RIGHT JOIN B b
ON b.serial = a.serial
WHERE a.Type = "C"
AND (DATEPART(week, a.datetime) = 15 OR DATEPART(week, datetime) = 16 OR DATEPART(week, datetime) = 17 OR DATEPART(week, datetime) = 18) AND DATEPART(yyyy, datetime) = 2020
FROM A a
RIGHT JOIN B b
ON b.serial = a.serial
WHERE a.Type = "C"
AND (DATEPART(week, a.datetime) = 15 OR DATEPART(week, datetime) = 16 OR DATEPART(week, datetime) = 17 OR DATEPART(week, datetime) = 18) AND DATEPART(yyyy, datetime) = 2020
En deze aantal aftrekken van de ander, maar.... Ik krijg nou dubbele results in de 2e query..
1 is van A en 1 is van B.
Het kan wel zijn, dat het serienummer in B met een andere type voorkomt. Dan alsnog mag ik hem niet meetellen.
Gewijzigd op 13/05/2020 16:17:56 door Dennis WhoCares
DATEPART --> er zijn ook functies als WEEK() en YEAR() geloof ik?
> Het kan wel zijn, dat het serienummer in B met een andere type voorkomt. Dan alsnog mag ik hem niet meetellen.
Dus als OF het serienummer OF het type overeen komt in tabel B dan?
Ik had wellicht moeten vermelden dat het MSSQL was :)
thanks!!