首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

这个查询如何写

2012-02-13 
这个查询怎么写?已知tabe1:订单编号款号颜色尺码数量--------------------------------------JHDD-2011-12

这个查询怎么写?
已知tabe1:

订单编号 款号 颜色 尺码 数量  
--------------------------------------
JHDD-2011-12-02-00002 699 米色 L 1.00000000
JHDD-2011-12-02-00002 699 米色 M 2.00000000
JHDD-2011-12-02-00002 699 米色 XL 15.00000000

已知tabel2:

款号 颜色 尺码  
----------- -------------------------- 
699 米色 L
699 米色 M
699 米色 XL
699 米色 XXL


如何上面两个表,如何通过SQL查询得出

订单编号 款号 颜色 尺码 数量  
--------------------------------------
JHDD-2011-12-02-00002 699 米色 L 1.00000000
JHDD-2011-12-02-00002 699 米色 M 2.00000000
JHDD-2011-12-02-00002 699 米色 XL 15.00000000
JHDD-2011-12-02-00002 699 米色 XXL NULL

[解决办法]

SQL code
use Tempdbgo--> -->  if not object_id(N'Tempdb..#T1') is null    drop table #T1GoCreate table #T1([订单编号] nvarchar(21),[款号] int,[颜色] nvarchar(2),[尺码] nvarchar(2),[数量] decimal(18,8))Insert #T1select N'JHDD-2011-12-02-00002',699,N'米色',N'L',1.00000000 union allselect N'JHDD-2011-12-02-00002',699,N'米色',N'M',2.00000000 union allselect N'JHDD-2011-12-02-00002',699,N'米色',N'XL',15.00000000Go if not object_id(N'Tempdb..#T2') is null    drop table #T2GoCreate table #T2([款号] int,[颜色] nvarchar(2),[尺码] nvarchar(3))Insert #T2select 699,N'米色',N'L' union allselect 699,N'米色',N'M' union allselect 699,N'米色',N'XL' union allselect 699,N'米色',N'XXL'GoSELECT     a.*,    b.[数量]FROM (Select b.*,a.* from #T2 AS a,(SELECT DISTINCT [订单编号] FROM #T1) b) AS aLEFT JOIN #T1 AS b ON a.[订单编号]=b.[订单编号] AND a.[款号]=b.[款号] AND a.[颜色]=b.[颜色] AND a.[尺码]=b.[尺码]/*订单编号    款号    颜色    尺码    数量JHDD-2011-12-02-00002    699    米色    L    1.00000000JHDD-2011-12-02-00002    699    米色    M    2.00000000JHDD-2011-12-02-00002    699    米色    XL    15.00000000JHDD-2011-12-02-00002    699    米色    XXL    NULL*/ 

热点排行