Sql Oracle将每两条记录合并为一条

Sql Oracle将每两条记录合并为一条,sql,oracle,Sql,Oracle,您好,我一直在努力实现以下目标: key1, key2, val1, userid, receipttype, val2,val3,val4,date,val5 1 0 0 1 3 0 0 0 18-JAN-17 1 1 0 0 1 4 0 0 0 18-JAN-17 1 1 0 0 114 3 0 0 0 18-JAN-17 1 1 0 0 114 4 0 0 0

您好,我一直在努力实现以下目标:

key1, key2, val1, userid, receipttype, val2,val3,val4,date,val5
1   0   0   1   3   0   0   0   18-JAN-17   1
1   0   0   1   4   0   0   0   18-JAN-17   1
1   0   0   114 3   0   0   0   18-JAN-17   1
1   0   0   114 4   0   0   0   18-JAN-17   1
1   0   0   1   3   0   0   0   18-JAN-17   1
1   0   0   1   4   0   0   0   18-JAN-17   1
这张表我试图得到以下结果:

key1, key2, val1, userid, receipttype, val2,val3,val4,date,val5,key1, key2, val1, userid, receipttype, val2,val3,val4,date,val5
1,0,0,1,3,0,0,0,18-JAN-17,1 1,0,0,1 4,0,0,0,18-JAN-17,1
1,0,0,114,3,0,0,0,18-JAN-17,1 1,0,0,114 4,0,0,0,18-JAN-17,1
我经常使用内部连接,但这肯定对我没有帮助。 我曾与pivot合作过,但这似乎对我也没什么帮助

我不完全确定我能用什么来获得想要的结果

所以我需要把两张唱片配对成一张。 对于每个有3的记录,我需要将其与第二个有4的记录配对,并且用户ID也必须相同


谢谢,

您只需要一个内部连接。您需要列出您的表两次

假设您的表名为
tbl

SELECT a.key1, b.key1
FROM tbl a INNER JOIN tbl b ON a.userid = b.userid
WHERE a.receipttype = 3
AND b.receipttype = 4

Hi-WW如果有多条用户id为1的记录,内部联接不起作用吗?如果有多条记录,您希望它们如何配对?什么决定什么和什么?或者你想把结果压缩成一行吗?我是按日期排序的,所以每3行应该有一对4。UserID 1记录有3记录有4记录按日期排序,这两个记录应该成对。但是可能有多个用户ID为1,这是一个棘手的部分。换句话说,对于每两条记录,我需要将它们粘在一起。那么,您想要的结果中应该有3行吗?这是不可能的吗?