表的说明:oe_order_header_all 订单头信息表
字段说明:header_id 订单头的编号,主键
org_id公司编号,
order_date下单时间,
sold_to_org_id客户(customer)的编号,
booked_flag是否已经确认要下该订单的标志列
cancelled_flag是否取消的标志列(*取消则该客户就不是我的客户了)
查询功能:查看2014 ISH Q1新客户数据,新客户的定义为:周期内(1/1~3/31)之前未成交,期间有成交的记录的新客户数据
分析及思路:1.org_id=287
2.在2014年1月1号之前没有成交
3.周期内(2014年1月1日—2014年3月31日)有成交
首先在oe_order_headers_all表中找到周期内有成交且公司编号为287的记录(记录一),然后再在oe_order_headers_all表中找到在周期之前成交且公司编号为287的记录(记录二),最后通过sold_to_org_id的比对(将记录已中的sold_to_org_id传入记录而中)从记录一中去掉记录二中存在的。
SELECT ooha1.sold_to_org_id,ooha1.ordered_date
FROM oe_order_headers_all ooha1
WHERE ooha1.ordered_date BETWEEN to_date('2014-01-01','yyyy-mm-dd')AND to_date('2014-03-31','yyyy-mm-dd')+0.9999
AND ooha1.org_id=287
ANDNOTexists(SELECT *
FROM oe_order_headers_all ooha2
WHERE ooha2.sold_to_org_id = ooha1.sold_to_org_id
AND ooha2.ordered_date <to_date('2014-01-01','yyyy-mm-dd')
AND ooha2.org_id = 287
AND ooha2.cancelled_flag = 'N'
AND ooha2.booked_flag = 'Y'
);
图解分析:
假设oe_order_headers_all表的结构和数据如下:
|
Head_id |
Org_id |
Order_date |
Sold_to_org_id |
|
1 |
227 |
2014-1-3 |
1 |
|
2 |
227 |
2014-1-2 |
2 |
|
3 |
287 |
2014-2-1 |
3 |
|
4 |
287 |
2014-2-5 |
3 |
|
5 |
227 |
2014-3-7 |
3 |
|
6 |
287 |
2014-12-3 |
3 |
|
7 |
287 |
2014-3-2 |
4 |
|
8 |
287 |
2014-12-5 |
5 |
|
9 |
227 |
2014-2-13 |
5 |
首先找出order_date在周期内且org_id为287的记录,如下图,粉红色底纹的是满足条件的:
|
Head_id |
Org_id |
Order_date |
Sold_to_org_id |
|
1 |
227 |
2014-1-3 |
1 |
|
2 |
227 |
2014-1-2 |
2 |
|
3 |
287 |
2014-2-1 |
3 |
|
4 |
287 |
2014-2-5 |
3 |
|
5 |
227 |
2014-3-7 |
3 |
|
6 |
287 |
2014-12-3 |
3 |
|
7 |
287 |
2014-3-2 |
4 |
|
8 |
287 |
2014-12-5 |
5 |
|
9 |
227 |
2014-2-13 |
5 |
然后找出order_date在周期之前且org_id为287的记录,如下图,淡蓝色底纹的是满足条件的:
|
Head_id |
Org_id |
Order_date |
Sold_to_org_id |
|
1 |
227 |
2014-1-3 |
1 |
|
2 |
227 |
2014-1-2 |
2 |
|
3 |
287 |
2014-2-1 |
3 |
|
4 |
287 |
2014-2-5 |
3 |
|
5 |
227 |
2014-3-7 |
3 |
|
6 |
287 |
2014-12-3 |
3 |
|
7 |
287 |
2014-3-2 |
4 |
|
8 |
287 |
2014-12-5 |
5 |
|
9 |
227 |
2014-2-13 |
5 |
最后比对两个记录中Sold_to_org_id栏位的值
|
Head_id |
Org_id |
Order_date |
Sold_to_org_id |
|
1 |
227 |
2014-1-3 |
1 |
|
2 |
227 |
2014-1-2 |
2 |
|
3 |
287 |
2014-2-1 |
3 |
|
4 |
287 |
2014-2-5 |
3 |
|
5 |
227 |
2014-3-7 |
3 |
|
6 |
287 |
2014-12-3 |
3 |
|
7 |
287 |
2014-3-2 |
4 |
|
8 |
287 |
2014-12-5 |
5 |
|
9 |
227 |
2014-2-13 |
5 |
|
Head_id |
Org_id |
Order_date |
Sold_to_org_id |
|
1 |
227 |
2014-1-3 |
1 |
|
2 |
227 |
2014-1-2 |
2 |
|
3 |
287 |
2014-2-1 |
3 |
|
4 |
287 |
2014-2-5 |
3 |
|
5 |
227 |
2014-3-7 |
3 |
|
6 |
287 |
2014-12-3 |
3 |
|
7 |
287 |
2014-3-2 |
4 |
|
8 |
287 |
2014-12-5 |
5 |
|
9 |
227 |
2014-2-13 |
5 |
可以看出第一条粉红记录中sold_to_org_id栏位中的值为3,在淡蓝记录中sold_to_org_id栏位中的值为3和5,可以比对出3不是新客户
|
Head_id |
Org_id |
Order_date |
Sold_to_org_id |
|
1 |
227 |
2014-1-3 |
1 |
|
2 |
227 |
2014-1-2 |
2 |
|
3 |
287 |
2014-2-1 |
3 |
|
4 |
287 |
2014-2-5 |
3 |
|
5 |
227 |
2014-3-7 |
3 |
|
6 |
287 |
2014-12-3 |
3 |
|
7 |
287 |
2014-3-2 |
4 |
|
8 |
287 |
2014-12-5 |
5 |
|
9 |
227 |
2014-2-13 |
5 |
|
Head_id |
Org_id |
Order_date |
Sold_to_org_id |
|
1 |
227 |
2014-1-3 |
1 |
|
2 |
227 |
2014-1-2 |
2 |
|
3 |
287 |
2014-2-1 |
3 |
|
4 |
287 |
2014-2-5 |
3 |
|
5 |
227 |
2014-3-7 |
3 |
|
6 |
287 |
2014-12-3 |
3 |
|
7 |
287 |
2014-3-2 |
4 |
|
8 |
287 |
2014-12-5 |
5 |
|
9 |
227 |
2014-2-13 |
5 |
可以看出第一条粉红记录中sold_to_org_id栏位中的值为4,在淡蓝记录中sold_to_org_id栏位中的值为3和5,可以比对出3和5中不包含4,因此sold_to_org_id为4的客户是新客户
|
Head_id |
Org_id |
Order_date |
Sold_to_org_id |
|
1 |
227 |
2014-1-3 |
1 |
|
2 |
227 |
2014-1-2 |
2 |
|
3 |
287 |
2014-2-1 |
3 |
|
4 |
287 |
2014-2-5 |
3 |
|
5 |
227 |
2014-3-7 |
3 |
|
6 |
287 |
2014-12-3 |
3 |
|
7 |
287 |
2014-3-2 |
4 |
|
8 |
287 |
2014-12-5 |
5 |
|
9 |
227 |
2014-2-13 |
5 |
|
Head_id |
Org_id |
Order_date |
Sold_to_org_id |
|
1 |
227 |
2014-1-3 |
1 |
|
2 |
227 |
2014-1-2 |
2 |
|
3 |
287 |
2014-2-1 |
3 |
|
4 |
287 |
2014-2-5 |
3 |
|
5 |
227 |
2014-3-7 |
3 |
|
6 |
287 |
2014-12-3 |
3 |
|
7 |
287 |
2014-3-2 |
4 |
|
8 |
287 |
2014-12-5 |
5 |
|
9 |
227 |
2014-2-13 |
5 |
可以看出第一条粉红记录中sold_to_org_id栏位中的值为4,在淡蓝记录中sold_to_org_id栏位中的值为3和5,可以比对出3和5中不包含4,因此sold_to_org_id为4的客户是新客户
80

被折叠的 条评论
为什么被折叠?



