【问题标题】:SQL filtering, select specific values count when condition is metSQL过滤,满足条件时选择特定值计数
【发布时间】: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


【解决方案1】:

您可以使用sum(case when <condition> then 1 else 0 end)来统计返回的满足一定条件的记录数。

【讨论】:

  • 事实上,我这样做了,但它只是返回 0。left join tbl_user u on uv.userId = u.id ------ >在连接结束时instad of count.... sum(case when (u.progressId = 3) then 1 else 0 end) as totalCandidatos.... 我得到的只是 0
  • 像魅力一样工作!
猜你喜欢
  • 2014-02-18
  • 2011-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多