日期:2014-05-19  浏览次数:20489 次

遇到新问题,开贴再求一次SQL查询语句,大家来指导指导。
表A与表B,表A内有字段aaa、bbb、ccc,表B内有字段ddd、eee、fff。
要求在A.aaa= '123 '和B.ddd= '456 '的两个结果中查询,条件为A.bbb=B.eee,结果列出A.aaa、A.bbb、A.ccc、B.ddd、B.eee、B.fff及重复记录的数目(就是说有几条A.bbb=B.eee的结果)这七项,结果按照重复记录的数目从大往小排列。

答案:SELECT   A.aaa,A.bbb,A.ccc,B.ddd,B.eee,B.fff,CNT=COUNT(1)  
FROM   A   INNER   JOIN   B   ON   A.bbb=B.eee  
WHERE   A.aaa= '123 '   and   B.ddd= '456 '
GROUP   BY   A.aaa,A.bbb,A.ccc,B.ddd,B.eee,B.fff
ORDER   BY   CNT   DESC

其中重复数目CNT是A.bbb=B.eee分别在A和B中记录的乘积,在实际使用中发现这个效果不理想,现在想在查询结果中分别列出A.bbb=B.eee在A和B的记录数,应该怎么样改。

------解决方案--------------------
可以换一个思路,分两步查询,然后在客户端组织显示结果。
不一定非要在一步上吊死啊。