日期:2014-05-18  浏览次数:20474 次

求一条SQL语句,比较复杂
table1:
序号       类别
01           玩具
02           食物
table2:
序号       类别         名称         对应编号
01           玩具         大小             A1
02           玩具         面积             A2
03           玩具         体积             A3
04           食物         重量             A7
05           食物         颜色             A9
table3:
序号       物品       A1         A2         A3       A4       A5       A6         A7       A8       A9       A10   .....
01           皮球       10         20         30
02           篮球       20         30         40
03           苹果                                                                         20                 50
04           香蕉                                                                         80                 70

显示效果
对应2种类别
当是玩具类别时候显示
物品       类别       大小       面积       体积
皮球       玩具       10             20           30
篮球       玩具       20             30           40
当是食物类别时候显示
物品       类别       重量       颜色
苹果       食物       20             50
香蕉       食物       80             70

请给出具体的查询过程。。谢谢


------解决方案--------------------

create table A(序号 nvarchar(10),类别 nvarchar(10))
insert A select '01 ', '玩具 '
union all select '02 ', '食物 '

create table B(序号 nvarchar(10), 类别 nvarchar(10), 名称 nvarchar(10), 对应编号 nvarchar(10))
insert B select '01 ', '玩具 ', '大小 ', 'A1 '
union all select '02 ', '玩具 ', '面积 ', 'A2 '
union all select '03 ', '玩具 ', '体积 ', 'A3 '
union all select '04 ', '食物 ', '重量 ', 'A