Sql “如何修复此错误”在选择列表中无效,因为它不包含在
我在SQL中有以下代码:Sql “如何修复此错误”在选择列表中无效,因为它不包含在,sql,sql-server,Sql,Sql Server,我在SQL中有以下代码: SELECT COUNT(*) as t, t1.EMPLID, t3.DNI, t1.PUNCH_DTTM, PUNCH_TYPE, TCD_ID, t2.PCADescripcion, t2.DFIDescripcion, t2.Alias, t5.apellido, t4.planta FROM [MatrizDB].[db_owner].[Historial_T
SELECT
COUNT(*) as t,
t1.EMPLID,
t3.DNI,
t1.PUNCH_DTTM,
PUNCH_TYPE,
TCD_ID,
t2.PCADescripcion,
t2.DFIDescripcion,
t2.Alias,
t5.apellido,
t4.planta
FROM
[MatrizDB].[db_owner].[Historial_TRH] t1
LEFT JOIN
MatrizDB.db_owner.Dispositivos_TRH t2 ON t2.RefId = TCD_ID
LEFT JOIN
MatrizDB.db_owner.Pipolsoft_Legajos t3 ON t3.EMPLID = t1.EMPLID
LEFT JOIN
[MatrizDB].[dbo].[nomina_fase_two] t4 ON t4.dni_id = t3.DNI
LEFT JOIN
[MatrizDB].dbo.v_nomina t5 ON t5.nroDocumento = t4.dni_id
WHERE
CONVERT(VARCHAR(25), PUNCH_DTTM, 120) LIKE '2019-04-24%'
AND t4.dni_responsable = 30329134
AND PUNCH_TYPE = 5
当我执行查询时,我得到了这个错误
在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中
在使用聚合函数count时,必须将group by放入
这篇评论太长了 您不理解错误消息的哪一部分 select中有count*,因此您的查询是聚合查询。您没有分组依据;没有group by的聚合查询只返回一行。对于其他列,该行中应包含哪些值 一个答案是将所有未聚合的列放在group by中。另一种方法是从select中删除所有未聚合的列。另一种方法是用一个窗口函数替换count*,比如,count*over,或者我怀疑您想要的是orderby上的行数
如果没有样本数据、所需结果和您想做什么的解释,您的问题就太模糊了。请提供样本数据、所需结果、您想做什么的解释以及适当的数据库标记。请参阅欢迎这样做,在发布问题之前,请在SO、Google、SQL文档上搜索。说真的,你刚刚忘记了GROUPBY子句。另外,请阅读帮助部分的提示,以编写一个好的问题
SELECT
count(*) as t
,t1.EMPLID
,t3.DNI
,t1.PUNCH_DTTM
,PUNCH_TYPE
,TCD_ID
,t2.PCADescripcion
,t2.DFIDescripcion
,t2.Alias
,t5.apellido
,t4.planta
FROM [MatrizDB].[db_owner].[Historial_TRH] t1
left join MatrizDB.db_owner.Dispositivos_TRH t2
on t2.RefId = TCD_ID
left join MatrizDB.db_owner.Pipolsoft_Legajos t3
on t3.EMPLID = t1.EMPLID
left join [MatrizDB].[dbo].[nomina_fase_two] t4
on t4.dni_id = t3.DNI
left join [MatrizDB].dbo.v_nomina t5
on t5.nroDocumento = t4.dni_id
where CONVERT(VARCHAR(25),PUNCH_DTTM,120) LIKE '2019-04-24%'
AND t4.dni_responsable = 30329134 and PUNCH_TYPE = 5
group by t1.EMPLID
,t3.DNI
,t1.PUNCH_DTTM
,PUNCH_TYPE
,TCD_ID
,t2.PCADescripcion
,t2.DFIDescripcion
,t2.Alias
,t5.apellido
,t4.planta