Oracle每两个记录合为一个

时间:2017-01-19 02:15:41

标签: 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   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

我通过内部联接工作很多,但这绝对不会帮助我。 我一直在使用枢轴,但这似乎也没有帮助我。

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

所以我需要将两个记录合二为一。 对于每个具有3的记录,我需要将其与具有4的第二个记录配对,并且用户标识也必须相同。

谢谢,

1 个答案:

答案 0 :(得分:0)

你需要的只是一个内部联接。你需要两次列出你的表。

假设您的表名为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