1
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 による順序」を実行する方法 ....

助けてください.....??????

4

2 に答える 2

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 

ただし、この場合、req.requirementid でグループ化しているため、すべての行の最初の列で値 1 しか取得できません!

于 2010-05-14T11:09:30.523 に答える
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
于 2010-05-14T11:10:25.583 に答える