dew*_*wey 1 sql coldfusion qoq
我试图遍历一个查询,以获取最高的createdTime。列instanceId是一个GUID(字符串),这给了我这个错误:

引用396B3850是instanceId的开头
<cfquery datasource="hostmanager" name="licenses">
SELECT *
FROM licenses
</cfquery>
<cfloop query="licenses">
<cfquery name="getHighestCreatedTime" dbtype="query">
SELECT MAX(CREATEDTIME)
FROM licenses
WHERE instanceId = #licenses.instanceId#
AND startDate = #licenses.startDate#
</cfquery>
</cfloop>
Run Code Online (Sandbox Code Playgroud)
错误的原因是,像这样的字符串文字#licenses.instanceId#必须用引号引起来,或者最好用cfqueryparam进行包装。
然而,在一个循环中查询是非常低效的,而且它不总需要。只需使用数据库的聚合函数:
SELECT InstanceID, startDate, MAX(CreatedTime) AS MaxCreatedTime
FROM licenses
GROUP BY InstanceID, startDate
Run Code Online (Sandbox Code Playgroud)