我有两张桌子:
徽章图片的表格
对于特定员工,(使用EmployeeID)我想显示所有计数大于0的徽章的图像。
例如,对于上表中的phil,除了slacker之外的所有徽章的计数都大于0.因此,将显示所有这些带有计数1的徽章的图像。
请帮帮我。
答案 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 = ?;