基于来自另一个表的计数拉图像

时间:2017-01-24 10:37:14

标签: sql sql-server sql-server-2008 sql-server-2005 sql-server-2012

我有两张桌子:

徽章图片的表格

ii

再次有一个表格,其中包含特定员工赢得的徽章计数: enter imagerr description here

对于特定员工,(使用EmployeeID)我想显示所有计数大于0的徽章的图像。

例如,对于上表中的phil,除了slacker之外的所有徽章的计数都大于0.因此,将显示所有这些带有计数1的徽章的图像。

请帮帮我。

2 个答案:

答案 0 :(得分:1)

试试这个,此查询可以正常工作。

SELECT EMPLOYEEID,EMPLOYEENAME,A.BADGENAME,BADGEID,BADGEIMAGE,COUNTS FROM (
SELECT EMPLOYEEID,EMPLOYEENAME,BADGENAME,COUNTS FROM EMPLOYEE--SECONDTABLE
UNPIVOT(
COUNTS FOR BADGENAME IN (INTOTHEGAME,GETALIFE,SLOGGER,SLACKER,BEYONDCALLOFDUTY)
)PVT
)A INNER JOIN BADGES B ON A.BADGENAME=B.BADGENAME----FIRST TABLE
WHERE COUNTS >0

答案 1 :(得分:1)

我认为这可以满足您的需求:

select t1.badgeImage
from table2 t2 join
     table1 t1
     on (t2.intoTheGame > 0 and t1.BadgeName = 'intoTheGame') or
        (t2.getALife > 0 and t1.BadgeName = 'getALife') or
        . . .
where t2.employeeid = ?;