作者cutekid (可爱小孩子)
看板Database
标题Re: [SQL ] Oracle DB 以PL-SQL查询合并栏位
时间Fri Dec 15 18:19:53 2017
with tb1 as(
select (ym || d) as date
from bill
group by (ym || d)
having count(distinct accno) > 1
)
select distinct t1.accno,t2.date
from bill t1
inner join tb1 t2 on (t1.ym || t1.d) = t2.date
order by t1.accno
※ 引述《UCboy (游戏boy)》之铭言:
: 资料库名称:Oracle - PL-SQL
: 内容/问题描述:
: 目前有类似下表的资料 想要结果如下
: accno ym d accno date
: 订单人编号 年月 日 订单人编号 日期
: a001 201712 15 a001 20171215
: a001 201712 15 a002 20171215
: a002 201712 15 a003 20171215
: a003 201712 15 a005 20171218
: a001 201712 16 a006 20171218
: a001 201712 16
: a004 201712 17
: a005 201712 18
: a005 201712 18
: a006 201712 18
: 想要的结果是列出一天中有"复数笔不同订单人下的订单"的纪录
: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: 目前语法想法是
: select disctinct(accno), (ym||d) as date
: from bill
: group by date
: order by accno
: having count(accno)>1;
: 但似乎合并出来的date无法直接做使用 吗?
: 还是有其他错误的地方呢?
: 只读过理论的完全资料库新手...QQ
: 再烦请高手们指点了 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.252.244.74
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1513333195.A.037.html
1F:推 UCboy: 太...太神了!!但我需要好好钻研一下这语法流程,感谢大大!! 12/18 09:35