SELECT
count(distinct req.requirementid),
req.requirementid,
org.organizationid,
req.locationofposting,
org.registereddate
FROM OrganizationRegisteredDetails AS org,
RequirementsDetailsforOrganization AS req
WHERE org.organizationid = req.requirementid
ORDER BY
org.RegisteredDate desc
这显示了错误:
色谱柱 'RequirementsDetailsforOrganization.RequirementID' 在选择列表中无效,因为 它不包含在任何一个中 聚合函数或GROUP BY 子句。
如何在此查询中执行'org.RegisteredDate desc'命令....
请帮帮我..... ??????
答案 0 :(得分:2)
您需要将SELECT
列表或ORDER BY
中引用的所有列添加到GROUP BY
子句中。
SELECT
count(distinct req.requirementid),
req.requirementid,
org.organizationid,
req.locationofposting,
org.registereddate
FROM OrganizationRegisteredDetails AS org,
RequirementsDetailsforOrganization AS req
WHERE org.organizationid = req.requirementid
GROUP BY
req.requirementid,
org.organizationid,
req.locationofposting,
org.registereddate
ORDER BY
org.RegisteredDate desc
虽然在这种情况下,你只会在所有行的第一列中获得值1,因为你在req.requirementid上进行分组!
答案 1 :(得分:1)
错误是因为根据规则,当您使用具有group by子句的聚合函数时,您必须包含选择列表中的列
以下内容可帮助您实现所需功能
(select count(distinct requirementid),requirementid,
from
RequirementsDetailsforOrganization
group by requirementid) d
inner join
( SELECT req.requirementid, org.organizationid,
req.locationofposting,org.registereddate FROM OrganizationRegisteredDetails AS org,
RequirementsDetailsforOrganization AS req WHERE org.organizationid =req.requirementid order by org.RegisteredDate desc) d1
on
d.requirementid= d1.requirementid