易截截图软件、单文件、免安装、纯绿色、仅160KB

求一SQL语句 - MS-SQL Server / 疑难问题

产品运输
产地 产品 数量
1 1 1
1 2 3
1 3 34
2 1 0
2 4 1
3 5 8
4 2 9

产品组
产品A 产品B
1 2
3 5

结果表记录:
产地 产品A 产品A数量 产品B 产品B数量
1 1 1 2 3
1 3 34
2 1 0 
3 5 8
4 2 9
暂时想到的SQL语句:
select case when AA.[产地] is null then BB.[产地] else AA.[产地] end as [产地],
AA.[产品] as [产品A],AA.[数量] as [产品A数量],
BB.[产品] as [产品B],BB.[数量] as [产品B数量]
from
(
select * from [产品运输] a
join [产品组] b on a.[产品] = b.[产品A]
) AA
full outer join
(
select * from [产品运输] a
join [产品组] b on a.[产品] = b.[产品B]
) BB
on AA.[产地] = BB.[产地] and AA.[产品B] =BB.[产品B]

求其他相关性能更好点的写法



你的结果看不太懂,说明一下.

结果表记录:
产地 产品A 产品A数量 产品B 产品B数量
1 1 1 2 3
1 3 34 空 空
2 1 0  
3 空 空 5 8
4 空 空 2 9

CSDN的排版问题将我的空格去除了。


先顶再看


full join的话要去取【产品运输】表两次,由于【产品运输】表数据量极大,所以想求解更好点的写法。
select * from [产品运输] a join [产品组] b on a.[产品] = b.[产品A] or a.[产品] = b.[产品B] 我想从这结果集中再写相关SQL求解不


相关问答:

SQL如何优化问题 - MS-SQL Server / 疑难问题

今天做了一个存储过程   环境是SQL2000数据库  
大致如下
建立临时表
定义员工游标
        循环员工(属于1个公司)  
        ......

sqlserver错误 - MS-SQL Server / 疑难问题

sqlserver2005 建立的数据库,与手持pda传输数据,最近突然出现无法传递数据的问题,pda端提示的错误时outofmemoryexception,但是pda上面的容量没有问题,
sqlserver的日子上的错误如下:
日期 2010-1-25 14:45: ......

请教SQL语句查询问题? - MS-SQL Server / 基础类

我想查询出每天数据的最大的一个值。表的格式如下
表名: hisdata
字段 编号 值 状态 时间  
  Id value state dattime  
  101 32.3 0 ......

SQL server分解XML - MS-SQL Server / 应用实例

下面是XML初始文件内容
XML code:
<upd:Update xmlns:lar="http://schemas.microsoft.com/msus/2002/12/LogicalApplicabilityRules" xmlns:cmd="http://schemas.microsoft.com/msus/2002/12/Up ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号