我不知道
这是否可以使用自连接来实现。但我尝试过这样做。我有如下表格:
storeid levelid modelid classid value1 value2
101 1 34 23 245 246
101 2 34 23 112 229
102 1 34 23 369 226
102 2 34 23 869 245
103 1 34 23 111 102
103 2 34 23 545 985
所以我想从这个表中进行选择,以便明确选择 storeid,并且对于 levelid、modelid、classid 的唯一组合:值 1 和值 2 被水平分配。我的意思是下面的结构:
storeid value1 value2 value1 value2
101 245 246 112 119
102 369 226 869 245
103 111 102 545 985
我只是带着自我加入的想法而来的,但我所做的并没有接近解决方案。如果不是解决方案,有用的想法也将不胜感激。以下是用于测试的查询:
create table #tblTest
(
storeid int,
levelid int,
modelid int,
classid int,
value1 int,
value2 int,
)
insert into #tblTest (storeid,levelid,modelid,classid,value1,value2) values(101,1,34,23,245,246)
insert into #tblTest (storeid,levelid,modelid,classid,value1,value2) values(101,2,34,23,225,229)
insert into #tblTest (storeid,levelid,modelid,classid,value1,value2) values(102,1,34,23,245,226)
insert into #tblTest (storeid,levelid,modelid,classid,value1,value2) values(102,2,34,23,245,245)
insert into #tblTest (storeid,levelid,modelid,classid,value1,value2) values(103,1,34,23,245,102)
insert into #tblTest (storeid,levelid,modelid,classid,value1,value2) values(103,2,34,23,45,985)
如果我无法提出我的问题,请告诉我。
谢谢。
如果您愿意,可以使用自加入来执行此操作:
select t1.storeid, t1.value1, t1.value2, t2.value1, t2.value2
from #tbltest t1 join
#tbltest t2
on t1.storedid = t2.storedid and
t1.levelid = 1 and t2.levelid = 2;
在示例数据中,不需要modelid
和classid
。 购买您也可以为它们添加平等条件。