不好意思各位大大請教我下列oracle查詢語句出來的值會員編號要排除多個值該如何下?
Google似乎找不到合適寫法
select distinct ms.member_code 會員編號, ms.chinese_name 姓名,
ms.Phone_Night 手機, ms.Phone_Day 電話, ms.address 地址, ms.e_mail 郵件, sps.shop_cname 店名, to_char(dh.inv_date,'YYYY/MM/DD') 消費日期
from membership ms
join dinv_hdr dh ON (dh.shop_code = ms.shop_code) --關聯資料表門店中文
join shop sps ON (sps.shop_code = dh.shop_code)
where to_char(dh.inv_date,'yyyy/mm/dd') >= '2022/07/01' and to_char(dh.inv_date,'yyyy/mm/dd') <= '2022/12/31'
and dh.closed = '1' AND dh.voided='0'
and dh.member_code in (
select member_code from membership
where sps.shop_cname ='OK 高新櫃'
)
group by ms.member_code, ms.chinese_name, ms.Phone_Night,
ms.Phone_Day, ms.address, ms.e_mail, sps.shop_cname, to_char(dh.inv_date,'YYYY/MM/DD')
order by ms.member_code ASC
個人意見
多資料表的關聯查詢
如果要排除重複資料的話
要不要考慮寫成巢式select呢?
裡層的select
where 下查詢條件
只select出當群組的欄位與彙總出的統計資料
這樣group by 也可以寫少一點
外層的select
再left join一次主檔
取得其他要顯示的欄位
這樣的寫法
要排除重複資料
會比較簡單
Group by
參考文件 : http://mylinoraclesql.blogspot.com/2013/07/group-by.html