求一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求解不
相关问答:
今天做了一个存储过程 环境是SQL2000数据库
大致如下
建立临时表
定义员工游标
循环员工(属于1个公司)
......
sqlserver2005 建立的数据库,与手持pda传输数据,最近突然出现无法传递数据的问题,pda端提示的错误时outofmemoryexception,但是pda上面的容量没有问题,
sqlserver的日子上的错误如下:
日期 2010-1-25 14:45: ......
我想查询出每天数据的最大的一个值。表的格式如下
表名: hisdata
字段 编号 值 状态 时间
Id value state dattime
101 32.3 0 ......
下面是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 ......