百度空间 | 百度首页 
 
查看文章
 
SQLSERVER之LEFT JOIN多主键的问题
2009-03-28 19:48

[由来]

    在很多资料,包括SQLSERVER 的帮助里,基本看不到,LEFT JOIN多个关键字的例子

    好象所有表都有一个主键,实在不知道是怎么回事,并且连写法我也不会,后来总算群

    有朋友说明: tbl1 as a left join tbl2 as b on a.f1=b.f1 and a.f2=b.f2.....

    这样总算语法通过了,可是结果就不是人想要的,明明tbl2里与tbl1里有多关键字组合的

    记录,这样连接出来却显示,tbl2里的内容全是null,实在不可思议

[解决办法]

   select c.corpname,d.storagename,e.productname,a.quantity-isnull(b.quantity,0) quantity
from
(
select
cast(yearid as varchar)+
cast(vendorid as varchar)+
cast(storageid as varchar)+
cast(productid as varchar) pkid,
yearid,vendorid,storageid,productid,quantity
from StorageYear
) a left join
(
select
cast(yearid as varchar)+
cast(vendorid as varchar)+
cast(storageid as varchar)+
cast(productid as varchar) pkid,
yearid,vendorid,storageid,productid,quantity
from SaleYear
) b
on a.pkid=b.pkid
left join corp c on c.corpid=a.vendorid
left join storage d on d.storageid=a.storageid
left join products e on e.productid=a.productid
where c.corptype=1
通过组合四个关键字作为一个关键字,然后对这一个关键字作LEFT JOIN这样就达到想要的结果了

不知道是我不会写,还是SQLSERVER就存在这样的问题,项目时间紧张没空再追究了,现在记到

这儿,希望对有相同需要的朋友提供一种可行的办法吧。


类别:Sqlserver | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu