我正在尝试撰写一份Select语句,该语句将审核销售给我们客户的商品。我希望看到所有在同一天内进行多次购买的客户以及与之相关的销售数字。
这是我目前的结构:
表:销售
字段:SalesNum,customer,SaleDt
测试数据
Customer - SalesNum - SaleDt
---------------------------------
Mike - 1 - 1/1/15
Bob - 2 - 1/1/15
Mike - 3 - 1/1/15
Tom - 4 - 1/2/15
Tom - 5 - 1/2/15
期望的结果
Customer - SalesNum - SaleDt
---------------------------------
Mike - 1 - 1/1/15
Mike - 3 - 1/1/15
Tom - 4 - 1/2/15
Tom - 5 - 1/2/15
我很欣赏有关使用方法的任何见解和建议。
答案 0 :(得分:0)
似乎不够清楚,我会说
从Sales中选择Customer,SalesNum,SaleDt,其中SaleDt = sysdate客户订单;
将根据您的解释列出客户订购的今日销售情况,这是结果,但是它是什么?
答案 1 :(得分:0)
使用您的样本数据:
with sales (Customer , SalesNum , SaleDt) as (
select 'Mike' , 1 , '1/1/15' from dual union all
select 'Bob' , 2 , '1/1/15' from dual union all
select 'Mike' , 3 , '1/1/15' from dual union all
select 'Tom' , 4 , '1/2/15' from dual union all
select 'Tom' , 5 , '1/2/15' from dual )
select customer,salesnum,s.saledt,total from sales s inner join (
select saledt,customer,count(*) total from sales
group by saledt,customer) using (customer)
where total>1 and customer = 'Mike'
结果:
CUSTOMER SALESNUM SALEDT TOTAL
-------- ---------- ------ ----------
Mike 1 1/1/15 2
Mike 3 1/1/15 2
或者您可能希望使用逗号分隔salesnums,以避免重复:
select customer,saledt,to_char(wm_concat(salesNum)) salesNums,count(*) total
from sales
group by saledt,customer
结果:
CUSTOMER SALEDT SALESNUMS TOTAL
Bob 1/1/15 2 1
Mike 1/1/15 1,3 2
Tom 1/2/15 4,5 2