全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1797
推到 Plurk!
推到 Facebook!

在SQL Server或Oracle中有類似MS Access 的Pivot語法嗎

尚未結案
redw
一般會員


發表:5
回覆:3
積分:1
註冊:2003-08-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-06 03:59:41 IP:61.66.xxx.xxx 未訂閱
在MS Access中有提供Pivot的語法來輸出樞紐分析報表,例: TRANSFORM Sum([M_Sales].[Amount]) AS SumOfAmount  SELECT [M_Sales].[Department]  FROM M_Sales  GROUP BY [M_Sales].[Department]  PIVOT Format([M_Sales].[Sale_date],"mmm")可得 在上例,MS Access會自動建立相關欄位(月份) 請問在SQL Server 或 Oracle中是否也有相同的語法可得 而非使用Case Or DeCode手工式建立欄位 發表人 - redw 於 2005/04/06 04:00:52
oktony
中階會員


發表:67
回覆:132
積分:64
註冊:2004-12-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-06 23:13:40 IP:220.161.xxx.xxx 未訂閱
SQL Server沒有Pivot語法,您可以參考下面這個例子:
USE Northwind
GO    CREATE TABLE Pivot
( Year      SMALLINT,
  Quarter   TINYINT, 
  Amount      DECIMAL(2,1) )
GO    INSERT INTO Pivot VALUES (1990, 1, 1.1)
INSERT INTO Pivot VALUES (1990, 2, 1.2)
INSERT INTO Pivot VALUES (1990, 3, 1.3)
INSERT INTO Pivot VALUES (1990, 4, 1.4)
INSERT INTO Pivot VALUES (1991, 1, 2.1)
INSERT INTO Pivot VALUES (1991, 2, 2.2)
INSERT INTO Pivot VALUES (1991, 3, 2.3)
INSERT INTO Pivot VALUES (1991, 4, 2.4)
GO    SELECT Year, 
    SUM(CASE Quarter WHEN 1 THEN Amount ELSE 0 END) AS Q1,
    SUM(CASE Quarter WHEN 2 THEN Amount ELSE 0 END) AS Q2,
    SUM(CASE Quarter WHEN 3 THEN Amount ELSE 0 END) AS Q3,
    SUM(CASE Quarter WHEN 4 THEN Amount ELSE 0 END) AS Q4
FROM Northwind.dbo.Pivot
GROUP BY Year
GO
redw
一般會員


發表:5
回覆:3
積分:1
註冊:2003-08-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-07 04:35:20 IP:61.66.xxx.xxx 未訂閱
這個方法要自行建立欄位(Q1,Q2,Q3,Q4) 但因為我的資料庫中該欄位的值不定 所以不能直接套用該方法 現在我都是先使用Distinct取得該欄位的不重複值後 方法1、在Delphi中用迴圈創造SQL語法 (用CASE(MS SQL Server) Or 用Decode(Oracle 8i)) 方法2、使用DataMemory元件 但這二種方法都不如MS Access提供的Pivot方法方便....
sundays
一般會員


發表:0
回覆:1
積分:0
註冊:2005-05-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-11 17:58:39 IP:220.129.xxx.xxx 未訂閱
可以用rollup 試試 SELECT [M_Sales].[Department], [Sale_date] FROM M_Sales GROUP BY [M_Sales].[Department], [Sale_date] with rollup 不過出來的資料是多筆row..而不像access 是一筆row 多個column oracle也有類似的rollup語法
JustinShen
中階會員


發表:22
回覆:104
積分:80
註冊:2003-09-20

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-11 20:48:46 IP:61.155.xxx.xxx 未訂閱
Pivot在SQL Server的Analysis Services里提供不安装就不能用了, 参考SQL Server Book Online有关说明好了. Justin Shen
------
====================
我为一切作努力!
Justin Shen

系統時間:2024-04-29 6:59:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!