
请问Sql server如何把一个内连接的输出的表格横向显示 50
有如下两张表,做了链接,现在需要查询输的样子是:OSIDOSUserOSTimeShopNameTable中shopName插入的值横向显示,OSNumber的值显示在对...
有如下两张表,做了链接,现在需要查询输的样子是:OSID OSUser OSTime ShopNameTable中shopName插入的值横向显示,OSNumber的值显示在对应的shopName下方,同一人同一天数据值显示一条,请问查询代码怎么写!
展开
1个回答
展开全部
普通sql很难做,要用sqlserver存储过程,用游标循环shorename的表,然后用case when一个一个拼起来
比如游标里写
create table aa as select osid,osuser,ostime,sum(case when shopname=@shopname and then osnumber else 0 end) as @shopname
from aa, shopname where aa.osid=shopname.osid
这样表aa在循环中每次都加上一个新shopname字段,直到游标shopname循环完毕,思路就是这样,最后再写个delete语句,把aa表里osnumber=0删掉就可以了,因为它都是表连接时由于shopname不匹配产生的垃圾数据
比如游标里写
create table aa as select osid,osuser,ostime,sum(case when shopname=@shopname and then osnumber else 0 end) as @shopname
from aa, shopname where aa.osid=shopname.osid
这样表aa在循环中每次都加上一个新shopname字段,直到游标shopname循环完毕,思路就是这样,最后再写个delete语句,把aa表里osnumber=0删掉就可以了,因为它都是表连接时由于shopname不匹配产生的垃圾数据
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询