NOV_23という名前のテーブルを作成しました。右端の部分の合計と、交通機関、食事、宿泊施設、その他、VAT、および郵便料金の合計を取得したいと思います。
CREATE TABLE NOV_23
(
EMPLOYEE_ID INT,
DIVISION VARCHAR (25),
LAST_NAME VARCHAR (25),
FIRST_NAME VARCHAR (25),
TRANSPORTATION INT,
LODGING INT,
TOTAL INT
);
それから私はいくつかの値を挿入しました
INSERT INTO NOV_23 VALUES
('1','DivA','LName1','FName1','1','1','')
INSERT INTO NOV_23 VALUES
('2','DivA','LName2','FName2','5','5','')
したがって、次のような結果が得られます。
Employee_ID Division Last_Name First_Name Transportation LODGING TOTAL
1 DivA LNameA FNameA 1 1
2 DivA LNameB FNameB 5 5
アップデートを使って合計を取得できます
UPDATE NOV_23
SET TOTAL = (Transportation + Lodging)
WHERE Employee_ID = 1
そして
UPDATE NOV_23
SET TOTAL = (Transportation + Lodging)
WHERE Employee_ID = 2
その中で私は次のように結果を得ることができます
Employee_ID Division Last_Name First_Name Transportation LODGING TOTAL
1 DivA LNameA FNameA 1 1 2
2 DivA LNameB FNameB 5 5 10
私が知りたいのは、交通機関の合計(6)、宿泊施設の合計(6)、およびそれらの全体の合計(6 + 6 = 12)を取得して表示する方法です。
Employee_ID Division Last_Name First_Name Transportation LODGING TOTAL
1 DivA LNameA FNameA 1 1 2
2 DivA LNameB FNameB 5 5 10
-- -- -- -- 6 6 12
を使用して小計と累積を計算できます rollup
SELECT Employee_ID, Division, First_Name||' '||Last_Name Name,
SUM(Transportation) AS Transportation,
SUM(Lodging) AS Lodging,
SUM(Total) AS Total
FROM nov_23
GROUP BY ROLLUP (Employee_ID, Division, First_Name||' '||Last_Name)
ORDER BY Employee_ID, Division, First_Name||' '||Last_Name;
を使用して指定されたディメンションのすべての組み合わせの小計と累積を計算できます。 cube
SELECT Employee_ID, Division, First_Name||' '||Last_Name Name,
SUM(Transportation) AS Transportation,
SUM(Lodging) AS Lodging,
SUM(Total) AS Total
FROM nov_23
GROUP BY CUBE (Employee_ID, Division, First_Name||' '||Last_Name)
ORDER BY Employee_ID, Division, First_Name||' '||Last_Name;
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加