作者icydream (巧虎)
看板Database
標題Re: [SQL ] 同一資料表內之查詢
時間Sat Oct 6 10:32:44 2012
※ 引述《dauntless (火車呼嚕呼嚕)》之銘言:
: 資料表如下:
: 序號 公司 承辦人 產品
: 1 甲 a n1
: 2 乙 b n2
: 3 丙 c n3
: 4 乙 d n2
: 5 戊 e n1
: 6 已 u n2
: 若要查詢所有不同公司,但卻使用相同產品
: 的紀錄:如下。
: 1 甲 a n1
: 5 戊 e n1
: 2 乙 b n2
: 6 已
: d n2
: 要如何做呢?
(test為資料表名稱)
select b.序號,
b.公司,
b.承辦人,
b.產品
from (select 產品
from test
group by 產品
having count(*) > 1) as a
inner join (select t2.序號,
t2.公司,
t2.承辦人,
t2.產品,
(select count(*)
from test as t1
where t1.公司 = t2.公司
and t1.序號 <= t2.序號) as idx
from test as t2) as b
on (a.產品 = b.產品 and b.idx = 1)
order by b.產品
說明:
1. 先找出重複出現的產品(子查詢 a)
2. 再替公司重新編號(idx),相同公司,序號較小者為1,依此類推(子查詢b)
3. 兩者做inner join,條件為產品及idx為1(因為重複出現的公司,只要取序號較小
那筆紀錄的資訊)
4. 希望可以解決您的問題 ^^;
--
Xuite 板看 icydream 者作
格落部的我 [報情] 題標
2008 00:00:00 1 Jun Tue 間時
───────────────────────────────────────
My Blog ->
http://blog.xuite.net/icydream/feeling
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.35.228
※ 編輯: icydream 來自: 114.25.35.228 (10/06 10:33)
推 dauntless:雖然我這新手目前看不懂,不過我會再研究看看 10/06 17:01
→ dauntless:先謝謝大大的熱心解答 10/06 17:03