Buen dia señores de antemano deseo agradecer su valiosa ayuda.
Mi asunto es el siguiente. Tengo dos tablas llamdas Fichas y AccionesEnFichas. Las cuales estan compuestas por las siguientes campos:
Fichas: IdFicha, Categoria
AccionesEnFichas:IdAccionesEnFichas,IdFichas.
Asi por ejemplo si las tablas tuvieran registros estarian como asi:
TABLA FICHAS
IdFicha Categoria
1 A
2 A
3 B
4 C
y digamos que la tabla AccionesEnFichas estaria asi:
IdAccionesEnfichas Idfichas
100 1
200 3
Yo necesito sacar LA CANTIDAD de fichas que no estan presentes en AccionesEnFichas por Categoria(si, asi es por Categoria).
Yo lo hice por separado pero no se como unirlas, miren lo que hice:
Primero, sume todas las fichas en la tabla Fichas que correspondian a esa categoria, de esta manera:
SELECT COUNT(*) FROM Fichas WHERE Fichas.Categoria LIKE '%A%'
El resultado en este cado es 2. Perfecto
Luego me fui a la tabla AccionesEnFichas y sume todas aquellas fichas estaban presentes por categoria. Me quedo de la siguiente forma:
SELECT COUNT(*) FROM AccionesEnFichas,Fichas WHERE AccionesEnFichas.IdFichas=Fichas.IdFichas AND Fichas.FichaAsignada LIKE '%A%'
El resultado en este cado es 1. Perfecto
Esas dos consultas me estan dando la cantidad de registros reales de cada tabla pero no se ahora como restarlos.
No se si hay que usar el Inner Join o algo parecido.
Intente con tambien de esta otra manera manera.
SELECT * FROM Fichas where NOT EXISTS(SELECT * FROM AccionesEnFichas, Fichas WHERE AccionesEnFichas.IdFichas=Fichas.IdFichas AND Fichas.FichaAsignada LIKE '%A%')
Ahi el resultado me dio cero, en vez de darme 1. Pues lo unico que no existe de la tabla Fichas en esa categoria es un registro. Los demas son de otras categrorias.
Espero haberme explicado. Desde ya, agradezco su valiosa ayuda.
Desde ya, agradezco su valiosa ayuda.