如何转换SQL SERVEr的此查询

时间:2017-08-09 22:17:25

标签: php mysql sql sql-server

  

SQLSTATE [42000]:[Microsoft] [SQL Server的ODBC驱动程序11] [SQL   服务器]专栏' ws_ticket.tkt_assunto'在选择列表中无效   因为它不包含在聚合函数或   GROUP BY子句。

QUERY

SELECT COUNT(tkt.tkt_id) as messages, tkt.tkt_id, tkt.tkt_assunto, tkt.tkt_departamento, tkt.tkt_prioridade, tkt.tkt_content, tkt.tkt_data_create, tkt.tkt_data_close, tkt.tkt_status
FROM ws_ticket tkt LEFT JOIN
     ws_ticket_reply alls
     ON alls.tkt_id = tkt.tkt_id
WHERE tkt.tkt_status IN (1,2) AND tkt.user_id = :id
GROUP BY tkt.tkt_id
ORDER BY tkt.tkt_data_create DESC

2 个答案:

答案 0 :(得分:1)

只需在 minute second teamId isGoal AtleticoMG AtleticoGO 1: 10 22 Atletico MG 0 0 0 2: 10 26 Atletico MG 0 0 0 3: 10 30 Atletico MG 0 0 0 4: 10 33 Atletico MG 0 0 0 5: 10 35 Atletico MG 0 0 0 6: 10 37 Atletico MG 0 0 0 7: 10 38 Atletico MG 1 1 0 8: 10 40 Atletico GO 0 1 0 9: 10 42 Atletico GO 0 1 0 10: 10 48 Atletico GO 1 1 1 11: 10 51 Atletico MG 0 1 1 11: 10 51 Atletico MG 0 1 1 12: 10 54 Atletico MG 1 2 1 13: 10 60 Atletico MG 0 2 1 中包含所有非聚合列:

group by

答案 1 :(得分:0)

在您的查询中,您只按Unable to cast object of type 'System.Data.SqlTypes.SqlDateTime' to type 'System.IConvertible'.Couldn't store <Null> in Record_Archive_Date Column. Expected type is DateTime. 分组,这意味着对于您选择中的任何其他列,他们要么必须在每一行中具有完全相同的值,要么应用某种聚合(例如,计数)。

你需要了解你在一起分组的内容。

使用您当前的查询,您只显示消息和ID,而不是其他内容:

tkt_id

或包括

组中的其他列
SELECT COUNT(tkt.tkt_id) as messages, 
       tkt.tkt_id
FROM   ws_ticket tkt 
LEFT JOIN ws_ticket_reply alls ON alls.tkt_id = tkt.tkt_id
WHERE  tkt.tkt_status IN (1,2) 
AND    tkt.user_id = :id
GROUP BY tkt.tkt_id
ORDER BY tkt.tkt_data_create DESC