我有一个表,其中有类似于年度歌曲排行榜。它包含了2000首歌曲和它们每年地位,从1999年到2014年比较两个SQL输出
我必须证明已在图表明年
表包含SONGID(PK,FK水涨船高所有歌曲,int,not null)LISTYEAR(PK,int,not null)和POSITION(int,not null)
目标是编写一个给定参数的存储过程,一年与(自生成的)明年将显示已经上涨的歌曲。
例如:
的用户通过对可变@firstyear到存储过程的值“2012”。
随后服务器采取的变量,并增加了一个把它放在下一个变量@secondyear,然后应该是当然的2013。
应该有只有一个表的输出,它应该有@firstyear“SONGNAME“位置”和“在@secondyear位置”作为标题。
值“在@secondyear位置”应该总是比“在@firstyear位置”更高,因为它只有表明上升的歌曲。
我该如何做到这一点?在mssql中是否有方法来比较1个表中的值?
编辑:
愚蠢的我不要你提供示例数据:
http://puu.sh/iihTc/4518dbcea9.png < - 数据库图表
http://puu.sh/iii2r/a04d639f2c.png < - 这三个表
输出在一些示例数据例如将在评论
注ŧ帽子只有歌曲可以输出其在排名
不完全清楚,显示一些示例数据和预期输出 –
提供示例数据和预期输出。 –
我不认为你需要SecondYear参数。从我所能理解的问题中你将不得不为你的@firstyear参数创建一个临时表,然后你将Atfirstyear设置为你感兴趣的年份。加入主要查询的临时数据,然后这些年份将循环执行它们的设置。我可以发布一个示例答案,我没有,因为我不熟悉mssql。 – SQLUser44