首页 > 解决方案 > 根据计数动态查询表名

问题描述

我将不胜感激有关根据我的第一个查询的计数生成动态查询的一些建议。

例如:在 757 BTID 中,我们找到了 Max Count of records 所以它应该是我们在第二个查询中的第一个表。同样,706 将是第二个,788-3rd,715 将是第二个查询中的第四个表,具体取决于计数。

这对于每个用户来说都是不同的,因为计数不同

第一个查询:

SELECT btid, COUNT(*) FROM  dbo.PERSON_EXPANDED
WHERE PID=31226 AND BTID IN (757,706,788,715)
GROUP BY btid

第一个查询结果:

757 15

706 14

788 12

715 11

第二个查询:

SELECT * 
FROM dbo.PERSON_EXPANDED E757
INNER JOIN dbo.PERSON_EXPANDED E706 ON E757.PID=E706.PID AND E706.BTID=706 AND E757.EffectiveDate BETWEEN E706.EffectiveDate AND E706.ExpirationDate
INNER JOIN dbo.PERSON_EXPANDED S788 ON E757.PID=S788.PID AND S788.BTID=788 AND E757.EffectiveDate BETWEEN S788.EffectiveDate AND S788.ExpirationDate
INNER JOIN dbo.PERSON_EXPANDED S715 ON E757.PID=S715.PID AND S715.BTID=715 AND E757.EffectiveDate BETWEEN S715.EffectiveDate AND S715.ExpirationDate
INNER JOIN dbo.EMPLOYEE E ON P.PID=E757.PID
WHERE E757.BTID=757
AND E.PID=31226
ORDER BY E757.EffectiveDate

谢谢...

标签: sql-server-2012

解决方案


推荐阅读