標籤

4GL (1) 人才發展 (10) 人物 (3) 太陽能 (4) 心理 (3) 心靈 (10) 文學 (31) 生活常識 (14) 光學 (1) 名句 (10) 即時通訊軟體 (2) 奇狐 (2) 爬蟲 (1) 音樂 (2) 產業 (5) 郭語錄 (3) 無聊 (3) 統計 (4) 新聞 (1) 經濟學 (1) 經營管理 (42) 解析度 (1) 遊戲 (5) 電學 (1) 網管 (10) 廣告 (1) 數學 (1) 機率 (1) 雜趣 (1) 證券 (4) 證券期貨 (1) ABAP (15) AD (1) agentflow (4) AJAX (1) Android (1) AnyChart (1) Apache (14) BASIS (4) BDL (1) C# (1) Church (1) CIE (1) CO (38) Converter (1) cron (1) CSS (23) DMS (1) DVD (1) Eclipse (1) English (1) excel (5) Exchange (4) Failover (1) Fedora (1) FI (57) File Transfer (1) Firefox (3) FM (2) fourjs (1) Genero (1) gladiatus (1) google (1) Google Maps API (2) grep (1) Grub (1) HR (2) html (23) HTS (8) IE (1) IE 8 (1) IIS (1) IMAP (3) Internet Explorer (1) java (4) JavaScript (22) jQuery (6) JSON (1) K3b (1) ldd (1) LED (3) Linux (117) Linux Mint (4) Load Balance (1) Microsoft (2) MIS (2) MM (51) MSSQL (1) MySQL (27) Network (1) NFS (1) Office (1) OpenSSL (1) Oracle (126) Outlook (3) PDF (6) Perl (60) PHP (33) PL/SQL (1) PL/SQL Developer (1) PM (3) Postfix (2) postfwd (1) PostgreSQL (1) PP (50) python (5) QM (1) Red Hat (4) Reporting Service (28) ruby (11) SAP (234) scp (1) SD (16) sed (1) Selenium (3) Selenium-WebDriver (5) shell (5) SQL (4) SQL server (8) sqlplus (1) SQuirreL SQL Client (1) SSH (2) SWOT (3) Symantec (2) T-SQL (7) Tera Term (2) tip (1) tiptop (24) Tomcat (6) Trouble Shooting (1) Tuning (5) Ubuntu (37) ufw (1) utf-8 (1) VIM (11) Virtual Machine (2) VirtualBox (1) vnc (3) Web Service (2) wget (1) Windows (19) Windows (1) WM (6) Xvfb (2) youtube (1) yum (2)

2011年3月5日 星期六

SQL 多筆資料成為一筆 by XML functions

1.
with mv as (
            select idnrk,b.small_group
              from sap_bom a,mes_mv_small_class b
             where a.idnrk between 'C00' and 'C62'
               and stlst = '1'
               and a.matnr = b.matnr
               and b.middle_group in ('Top View','Side View','Chip LED','High Power')
             group by idnrk,b.small_group
             order by 1
           )
select idnrk,ltrim(extract(xmlagg(xmlelement("small_group",','||small_group)),'/small_group/text()').getstringval(),',')
       small_groups
  from mv
 group by idnrk

SMALL_GROUPS會以 "," 分隔

Result
IDNRK             SMALL_GROUPS
C01RZ0109-000A    3804
C01RZ0109-001A    3804
C01RZ0109-002A    3804
C01RZ0431-000B    5050
C01RZ0431-001B    5050
C01RZZ613-001A    3804
C01RZZ813-000A    1615
C01RZZ913-001A    0603RE
C01RZZ913-002A    0603RE
C01RZZ913-003A    0603RE
C02RZZ913-000A    0603AM
C02RZZ913-001A    0603AM
C03RZZ713-000A    0603YL
C03RZZ813-000A    0603YL
C03RZZ913-000A    0603YL
C03RZZ913-001A    0603YL
C04RZZ913-000A    0603YG
C04RZZ913-001A    0603YG
C05RA2603-000A    0603GS,1615
C05RA2603-001A    0603GS,1615
C05RA2603-002A    0603GS,1615
C05RA2603-003A    0603GS,1615
C05RA2603-008A    0603GS


2.
with mv as (
            select empno, b.codevalue ktsch
              from dwmgr.mes_tbl_certification a,hr_tbl_codedetail b
             where a.ktsch = b.codeid
             group by empno,b.codevalue
             order by 1,2
           )
select empno,ltrim(extract(xmlagg(xmlelement("ktsch",','||ktsch)),'/ktsch/text()').getstringval(),',')
       ktsch,count(*) cnt
  from mv
 group by empno


EMPNO    KTSCH    CNT
89003    包裝,測試,收發料,捲目    4
89004    收發料,測試    2
90004    捲目    1
90005    包裝,測試    2
90007    PLASMA,打線    2
90008    固晶-Chip,控片    2
90010    包裝,測試    2
90015    壓模,戳膠    2
90017    包裝,測試    2
90019    包裝,測試,收發料    3
90020    戳膠    1
90022    包裝,測試    2
90023    捲目    1
90024    固晶-Chip    1
90028    包裝,測試    2
90030    收發料,測試    2
90031    包裝,測試    2
90036    離心機,點膠    2
90037    打線    1
90038    沖壓,目檢    2
90039    打線,控片    2
91009    封裝膠烘烤,控片    2
91014    切割,目檢,熱測(WB),沖壓,戳膠,封裝膠烘烤,壓模    7
91016    戳膠,沖壓    2
91019    捲目    1
91022    切割,目檢    2
91025    捲目    1
91026    PLASMA,打線    2

沒有留言:

張貼留言