问题看起来好像比较麻烦。
有一表Tab,表结构及数据以下:
A B C D E
123001 冷板3.0mm 10 Kg 前面板
123001 热板3.0mm 20 Kg 左侧面板
123001 热板3.0mm 30 Kg 右侧面板
123003 塑板1.0mm 50 m^2 档风板现想用一查询语句,能返回如下结果集:
A B C D
123001 热板3.0mm 60 Kg
123003 塑板1.0mm 50 m^2
即以字段A来分组统计,如A值相同,但B值不同的,取其中的一个指定的值(比如这个例子中取"热板3.0mm")。
有一表Tab,表结构及数据以下:
A B C D E
123001 冷板3.0mm 10 Kg 前面板
123001 热板3.0mm 20 Kg 左侧面板
123001 热板3.0mm 30 Kg 右侧面板
123003 塑板1.0mm 50 m^2 档风板现想用一查询语句,能返回如下结果集:
A B C D
123001 热板3.0mm 60 Kg
123003 塑板1.0mm 50 m^2
即以字段A来分组统计,如A值相同,但B值不同的,取其中的一个指定的值(比如这个例子中取"热板3.0mm")。
FROM (SELECT A, MIN(B) B, MIN(D) D
FROM TAB
GROUP BY A
) T1
JOIN (SELECT A, COUNT(C) C
FROM TAB
GROUP BY A
) T2 ON T1.A = T2.A
(
num varchar(10),
title varchar(20),
qty int,
unit varchar(5),
memo varchar(100)
)
insert into product
select '1230001','冷板3.0mm',10,'KG','前面板'
union
select '1230001','热板3.0mm',20,'KG','左侧面板'
union
select '1230001','热板3.0mm',30,'KG','右侧面板'
union
select '1230003','塑板1.0mm',50,'KG','档风板 '
SELECT NUM,MAX(TITLE) AS TITLE,SUM(QTY) AS TOTALQTY FROM PRODUCT GROUP BY NUMNUM TITLE TOTALQTY
---------- -------------------- -----------
1230001 冷板3.0mm 60
1230003 塑板1.0mm 50(影響 2 個資料列)
但如果有无限多的记录时,比如‘冷板0.1mm’‘冷板0.2mm’、‘冷板0.3mm’、‘冷板0.4mm’、、、等等,这样的查询语句是实现不了吧?
select A,B,sum(C),D,E from 表格名称 group by A order by A
--如果对B,E也分组
select A,B,sum(C),D,E from 表格名称 group by A,B,E orber by A