Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104986031
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-22 19:46:45

作者: Jim Czuprynski/黄永兵 译 出处:51CTO.com  
 
 
SPM情景#2:

/*
|| SFA_Queries.sql
||
|| Various queries to produce workload against simulated new
||  Sales Force Administration application
||
*/

-----
-- Set up and initialize bind variables
-----
VARIABLE rgn_abbr  VARCHAR2(4);
VARIABLE rgn_desc  VARCHAR2(40);
VARIABLE cust_id    NUMBER;
BEGIN
:rgn_abbr  := 'NE00';
:rgn_desc  := 'South%';
:cust_id    := 9090;
END;
/

-----
-- Query:   SPM_2.2.1
-- Purpose: Summarize quantity sold and revenue within U.S. States
-----
SELECT /*SPM_2.2.1*/
C.cust_state_province   
,SUM(sh.quantity_sold)
,SUM(sh.amount_sold)
FROM
  sh.sales SH
,sh.customers C
,sh.countries T
WHERE SH.cust_id = C.cust_id
AND C.country_id = T.country_id
AND T.country_iso_code IN ('GB','PL')
GROUP BY C.cust_state_province
;

-----
-- Query:   SPM_2.2.2
-- Purpose: Show distribution of geographic areas within
--          Sales Region and District
-----
SELECT /*SPM_2.2.2*/
SR.abbr,
SD.abbr,
SZ.geo_id,
COUNT(C.cust_id) "Count"
FROM
sfa.sales_regions SR,
sfa.sales_districts SD,
sfa.sales_zones SZ,
sh.customers C
WHERE SD.region_id = SR.region_id
AND SZ.district_id = SD.district_id
AND C.cust_state_province = SZ.geo_id
AND SR.abbr = 'SE00'
GROUP BY
SR.abbr
,SD.abbr
,SZ.geo_id
;

-----
-- Query:   SPM_2.2.3
-- Purpose: Accumulate quantities and revenue within Sales Region, District,
--   and Territory. Note that this query +should+ take advantage of
--          materialized view SFA.MV_SALES_SUMMARY for most effective retrieval
-----
SELECT /*SPM_2_2.3*/
SR.abbr
,SD.abbr
,SZ.geo_id
,C.cust_id
,SUM(SH.quantity_sold)
,AVG(SH.quantity_sold)
,COUNT(SH.quantity_sold)
,SUM(SH.amount_sold)
,AVG(SH.amount_sold)
,COUNT(SH.amount_sold)
FROM
sfa.sales_regions SR
,sfa.sales_districts SD
,sfa.sales_zones SZ
,sh.customers C
,sh.sales SH
WHERE SD.region_id = SR.region_id
AND SZ.district_id = SD.district_id
AND C.cust_state_province = SZ.geo_id
AND C.cust_ID = SH.cust_id
GROUP BY
SR.abbr
,SD.abbr
,SZ.geo_id
,C.cust_id   
ORDER BY
SR.abbr
,SD.abbr
,SZ.geo_id
,C.cust_id   
;

-----
-- Query:   SPM_2.2.4
-- Purpose: Accumulate quantities and revenue within Sales Region, District,
--   and Territory by querying directly against SFA.MV_SALES_SUMMARY
-----
SELECT /*SPM_2_2.4*/
rgn_abbr
,dst_abbr
,ter_abbr       
,cust_id
,tot_qty_sold
,avg_qty_sold
,cnt_qty_sold
,tot_amt_sold
,avg_amt_sold
,cnt_amt_sold
FROM
sfa.mv_sales_summary
WHERE dst_abbr = 'NE20'
ORDER BY
rgn_abbr
,dst_abbr
,ter_abbr       
,cust_id

-----
-- Query:   SPM_2.2.5
-- Purpose: Accumulate quantities and revenue within Sales Region and District.
--   for a selected Region. Note that this query +should+ take advantage
--          of materialized view SFA.MV_SALES_SUMMARY for most effective retrieval
-----
SELECT /*SPM_2_2.5*/
SR.abbr
,SD.abbr
,SUM(SH.quantity_sold)
,AVG(SH.quantity_sold)
,COUNT(SH.quantity_sold)
,SUM(SH.amount_sold)
,AVG(SH.amount_sold)
,COUNT(SH.amount_sold)
FROM
sfa.sales_regions SR
,sfa.sales_districts SD
,sfa.sales_zones SZ
,sh.customers C
,sh.sales SH
WHERE SD.region_id = SR.region_id
AND SZ.district_id = SD.district_id
AND C.cust_state_province = SZ.geo_id
AND C.cust_ID = SH.cust_id
AND SR.abbr = :rgn_abbr
GROUP BY
SR.abbr
,SD.abbr
ORDER BY
SR.abbr
,SD.abbr
;

-----
-- Query:   SPM_2.2.6
-- Purpose: Accumulate quantities and revenue within Sales Region. Note that
--          this query +cannot+ take advantage of SFA.MV_SALES_SUMMARY for
--          effective retrieval because of the selection criteria against
--          Region Description
-----
SELECT /*SPM_2_2.6*/
SR.abbr
,SUM(SH.quantity_sold)
,AVG(SH.quantity_sold)
,COUNT(SH.quantity_sold)
,SUM(SH.amount_sold)
,AVG(SH.amount_sold)
,COUNT(SH.amount_sold)
FROM
sfa.sales_regions SR
,sfa.sales_districts SD
,sfa.sales_zones SZ
,sh.customers C
,sh.sales SH
WHERE SD.region_id = SR.region_id
AND SZ.district_id = SD.district_id
AND C.cust_state_province = SZ.geo_id
AND C.cust_ID = SH.cust_id
AND C.cust_id = :cust_id
AND SR.description LIKE :rgn_desc
GROUP BY
SR.abbr
ORDER BY
SR.abbr
;

阅读(480) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~