【发布时间】:2016-11-15 16:53:35
【问题描述】:
也许我只是愚蠢,但由于某种原因,这是有效的,是的,它工作得很好,但我们想添加一个带有子表的条件,但保持相同的格式。
开始
SELECT
v.[id]
,v.[Vacante]
,v.[deptoId]
,v.[StatusId]
,v.[scholarYearId]
,v.[tipoVacanteId]
,v.[detalle]
,v.[createdDate]
,v.[createdBy]
,d.nombre as DeptoNombre
,s.nombre as statusNombre
,y.nombre as scholarYearNombre
,t.nombre as tipoVacanteNombre
,count(uv.id) as totalCandidatos
FROM
[dbo].[tbl_vacantes] v
LEFT JOIN
tbl_usuariosPorVacante uv on v.id = uv.vacanteId
--LEFT JOIN
-- dbo.[tbl_user] u on uv.userId=u.id
INNER JOIN
dbo.[tbl_depto] d ON d.Id = v.[deptoId]
INNER JOIN
dbo.[tbl_status] s ON s.Id = v.[statusId]
LEFT JOIN
tbl_scholarYear y ON v.scholarYearId=y.Id
LEFT JOIN
tbl_tipoVacante t ON v.tipoVacanteId=t.Id
--WHERE
-- u.progressId =3 OR u.progressId is null --Solo usuarios que ya temrinaron su proceso.
GROUP BY
v.[id]
,v.[Vacante]
,v.[deptoId]
,v.[StatusId]
,v.[scholarYearId]
,v.[tipoVacanteId]
,v.[detalle]
,v.[createdDate]
,v.[createdBy]
,d.nombre
,s.nombre
,y.nombre
,t.nombre
ORDER BY
v.id DESC
结束
我们要做的,是在totalCandidatos(计数)中保持一个计数,是的,但只在dbo.[tbl_user] u 的progressId = 3 和4 时才计数。从现在开始,它正在计算各种progressId。
我知道,这可能很愚蠢。但我坚持这一点。
谢谢!
【问题讨论】:
-
where tbl_user in (3,4) -
您要排除非 3/4 行还是包含但计数为 0?
-
我只想计算 tbl_user.progressID = 4 或 3 的 count()。不是整个 Universer。
标签: sql sql-server join count