Hola a todos. Manejo Sql Server 2000 como motor de base de datos. Tengo una tabla AREAS y una tabla CODIGOS. Cada código está relacionado con un área en AREAS y tiene un atributo USADO (de tipo bit). Quiero una consulta que me liste TODAS LAS AREAS contando además cuantos códigos cumplen con USADO = 1.
Actualmente la consulta que manejo es la siguiente:
SELECT Areas.Nombre, Count(*) As Total FROM Areas, Codigos WHERE Codigos.Area_Id = Areas.Id And Codigos.Usado = 1
Está consulta funciona bien cuando al menos uno de los códigos relacionados con el área tiene USADO = 1, pero si esto no lo cumple ninguno entonces directamente no me devuelve ese registro, cuando en realidad quiero que me devuelva el nombre del área y 0 como total de registros que tienen el atributo USADO = 1.
No sé si me habré explicado bien, gráficamente sería algo así:
Código:
Tabla Areas
--------------
Id Nombre
--- --------------
1 Area1
2 Area2
3 Area3
Tabla Codigos
------------------
Id Codigo Usado Area_Id
--- ----------- --------- ----------
1 52456 1 1
2 41525 0 1
3 25687 1 2
4 25446 1 2
5 14564 1 2
6 12546 0 3
Actualmente, esto me devuelve:
Código:
Nombre Total
---------- ------
Area1 1
Area2 3
Cuando en realidad quiero que me devuelva:
Código:
Nombre Total
---------- -------
Area1 1
Area2 3
Area3 0
Espero que alguien pueda darme una mano con esto. Estaré muy agradecido si así es.
Un abrazo.