like
DIFERENCIA DE FECHAS
select
(select COUNT(pat_ben_vc)
from dbo.Beneficiario
WHERE pat_ben_vc ='QUISPE'
group by pat_ben_vc) as quispe_paternos,
(select COUNT(mat_ben_vc)
from dbo.Beneficiario
WHERE mat_ben_vc ='QUISPE'
group by mat_ben_vc) as quispe_maternos
SELECT
SUM(CASE WHEN pat_ben_vc = 'QUISPE' THEN 1 ELSE 0 END) AS CountPat,
SUM(CASE WHEN mat_ben_vc = 'QUISPE' THEN 1 ELSE 0 END) AS CountMat
FROM dbo.Beneficiario;
1. Búsqueda de registros específicos
- Encuentra el nombre y apellido materno de los beneficiarios cuyo
cod_com_si sea igual al código más alto registrado en la tabla.Pista: Usa una subconsulta para encontrar el valor máximo de cod_com_si.
select nom_ben_vc, cod_com_si
from dbo.Beneficiario
where cod_com_si = (select max(cod_com_si)
from dbo.Beneficiario
)
2. Contar registros relacionados
- Obtén el número total de beneficiarios en la zona con el mayor número de registros (
zon_ben_vc).Pista: Usa una subconsulta para identificar la zona con más beneficiarios.
select TOP 1 count(zon_ben_vc) as contador, zon_ben_vc
from dbo.Beneficiario
group by zon_ben_vc
ORDER BY contador DESC
4. Agrupación por características
- Obtén una lista de zonas (
zon_ben_vc) que tienen más de 5 beneficiarios con pat_ben_vc = 'GONZALES'.Pista: Usa una subconsulta para contar registros en cada zona.
SELECT contador, zon_ben_vc
FROM
(select count(pat_ben_vc) as contador, zon_ben_vc
from dbo.Beneficiario
where pat_ben_vc = 'GONZALES'
group by zon_ben_vc) as CONSULTA
where contador>5
5. Filtrado por atributos relacionados
- Encuentra los beneficiarios cuya
fec_nac_ben_da sea más antigua que la fecha de nacimiento más reciente de alguien con pat_ben_vc = 'AYALA'.Pista: Usa una subconsulta para encontrar la fecha más reciente.
SELECT fec_nac_ben_da, nom_ben_vc
from dbo.Beneficiario
where fec_nac_ben_da <= (select TOP 1 fec_nac_ben_da
from dbo.Beneficiario
WHERE pat_ben_vc = 'AYALA'
ORDER BY fec_nac_ben_da DESC)
ORDER BY fec_nac_ben_da DESC
6. Cálculo sobre grupos
- Encuentra el promedio de edad (calculado a partir de
fec_nac_ben_da) para los beneficiarios en las zonas con nombres que contienen "CAJA".Pista: Usa una subconsulta para filtrar zonas específicas.
select avg(DATEDIFF(YEAR, fec_nac_ben_da, getdate())) as promedio_edad
from dbo.Beneficiario
where zon_ben_vc like '%caja%'
8. Validación de dependencias