1

我有一个表让我们假设它有三列 1> emailid, 2> orderno, 3> date

    ========================================
orderno | emailid   |   date    |
=========================================
1   |asd@abc.com    |   2013-07-20|
-------------------------------------------
2   |asd@abc.com    |   2013-07-20|
-------------------------------------------
4   |asd@abc.com    |   2013-08-25|
-------------------------------------------
5   |xyz@abc.com    |   2013-07-23|
-------------------------------------------
6   |xyz@abc.com    |   2013-07-23|
-------------------------------------------
9   |xyz@abc.com    |   2013-08-26|
-------------------------------------------
11  |xyz@abc.com    |   2013-08-26|
-------------------------------------------

................................................表格包含上述类型的数据. 表示 emailid 是重复的,并且 date 也是重复的。您可以假设每个客户的每一行,并且在特定日期没有订单。

现在我想要什么

我想要这样的结果

    ===================================================
 emailid    |   2013-07-01  |2013-08-01|
====================================================
asd@abc.com |   2       |1     |
----------------------------------------------------
xyz@abc.com |   2       |2     |
----------------------------------------------------

我已经尝试了很多东西,通过使用 if in select , union .sp.etc。首先,我写了一个 sp,制作了一个几周的临时表,打开一个游标并按条件插入到临时表中。但是花很长时间执行的 b/c 并不好。当我使用 IF 时,它不起作用。我不能写我的查询 b/c 表不是那么简单。

所以我需要一个带有 IF 的选择查询,因为在 oracle 中有老化报告。提前致谢。

4

1 回答 1

0

数据透视表可以解决您的问题

这是一个关于如何实现这种用例的教程: http ://www.artfulsoftware.com/infotree/queries.php#78

于 2013-11-11T08:56:17.510 回答