在SQL/400中,不能直接列出某一列的合计,但可以用UNION语句实现这一功能。
UNION操作可将两个或更多不同的SQL语句的结果合并成一个结果集,唯一的限制是每个表或SQL语句必需有相同的列类型、数目和顺序。
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
1、在AS/400命令行执行命令:
STRSQL
2、在“Enter SQL Statements”画面输入下列SQL语句:
select 'Item' as id,
--------salary,
--------tel
from xqlib/emp
union
select 'Total' as id,
--------sum(salary) as salary,
--------0 as tel
from xqlib/emp
SELECT statement run complete.
在此例中UNION联合的两个表所选择的字段,如id,salary,tel各自具有相同的类型和顺序,否则会报错。
3、执行结果如下图所示:
-----------------------------Display Data
------------------------------------------Data width . . . . . . : 37
Position to line . . . . . ------------Shift to column . . . . . .
....+....1....+....2....+....3....+..
ID -----------SALARY --------TEL
Item --------10,000 --------111,111
Item --------20,000 --------222,222
Item --------30,000 --------333,333
Item --------40,000 --------444,444
Item --------50,000 --------555,555
Item --------60,000 --------777,777
Item --------80,000 --------888,888
Item --------91,000 --------121,212
Total -------381,000 -------------0
******** End of data ********
----------------------------------------------------------Bottom
F3=Exit --F12=Cancel --F19=Left --F20=Right --F21=Split