与 group by 一起使用的 sql.xml 中的查询是不是正确?
Posted
技术标签:
【中文标题】与 group by 一起使用的 sql.xml 中的查询是不是正确?【英文标题】:Is it right query in sql.xml used with group by?与 group by 一起使用的 sql.xml 中的查询是否正确? 【发布时间】:2021-03-24 07:19:15 【问题描述】:我使用 mysql DB,我想选择数据以使用“分组依据”。 在 MYSQL 工作台中,我检查了这个查询(REQDT、RESDT 是 varchartype)
SELECT
DATE_FORMAT(REQDT, '%Y-%m-%d') AS REQDT,
DATE_FORMAT(RESDT, '%Y-%m-%d') AS RESDT, SVCE_DOMAIN, COUNT(SVCE_DOMAIN)
FROM BC_HISTORY
GROUP BY DATE_FORMAT(REQDT, '%Y-%m-%d')
下面的查询写在 SQL.xml 上
<select id="selectpick" parameterType="JSON" resultType="JSON">
SELECT
DATE_FORMAT(REQDT, '%Y-%m-%d') AS REQDT,
DATE_FORMAT(RESDT, '%Y-%m-%d') AS RESDT, SVCE_DOMAIN, COUNT(SVCE_DOMAIN)
FROM BC_HISTORY
GROUP BY DATE_FORMAT(REQDT, '%Y-%m-%d')
<when test="@com.typhoon.framework.json.JSONValidation@notEmpty(log_yyyymmdd_from) and @com.typhoon.framework.json.JSONValidation@notEmpty(log_yyyymmdd_to)">
AND date_format(REQDT, '%Y-%m-%d') BETWEEN #log_yyyymmdd_from AND #log_yyyymmdd_to
</when>
<when test="@com.typhoon.framework.json.JSONValidation@notEmpty(log_yyyymmdd_from)">
<![CDATA[
AND date_format(REQDT, '%Y-%m-%d') >= #log_yyyymmdd_from
]]>
</when>
<when test="@com.typhoon.framework.json.JSONValidation@notEmpty(log_yyyymmdd_to)">
<![CDATA[
AND date_format(REQDT, '%Y-%m-%d') <= #log_yyyymmdd_to
]]>
</when>
</choose>
(@com.typhoon.framewroks 是库,只检查 null)
在这种情况下,我在 javascript 中使用了“DatePicker”来获取日期。并从log_yyyymmdd_from
和log_yyyymmdd_to
之间的日期中选择数据并返回到 html。但是当我运行服务器并选择日期时,它什么也没显示。任何数据都出现在 HTML 上。我想知道我在 XML 上写的查询是正确的。请救救我.....
【问题讨论】:
【参考方案1】:我终于知道了。如果你像我一样写。您可以看到错误消息,例如
syntax error near ....
因为我在错误的地方写了 group by 子句。
所以正确的查询是写在“where”子句下的“group by”子句。
例如
select * from table
<where>/<where>
group by .....
这只是一个简单的错误,但我为可能遇到与我相同问题的人编写了此解决方案。
【讨论】:
以上是关于与 group by 一起使用的 sql.xml 中的查询是不是正确?的主要内容,如果未能解决你的问题,请参考以下文章