日期:2014-05-17 浏览次数:20571 次
SELECT CASE WHEN CHARINDEX('(', 名称, 1)=0 THEN 名称 ELSE SUBSTRING(名称, 1, CHARINDEX('(', 名称, 1)-1 )END 名称 ,
SUM(金额) 金额
FROM TB
GROUP BY CASE WHEN CHARINDEX('(', 名称, 1)=0 THEN 名称 ELSE SUBSTRING(名称, 1, CHARINDEX('(', 名称, 1)-1 )END
USE tempdb;
/*
CREATE TABLE t1
(
序号 INT NOT NULL,
名称 NVARCHAR(10) NOT NULL,
金额 INT NOT NULL
);
INSERT INTO t1(序号,名称,金额) VALUES(1,'A',55),(2,'A(1)',55),(3,'B',44),(4,'B(2)',44);
*/
SELECT
t2.Name AS 名称,
SUM(t2.金额) AS 金额合计
FROM
(
SELECT
*,
CASE
WHEN CHARINDEX('(',名称,1) > 0 THEN SUBSTRING(名称,1,CHARINDEX('(',名称,1)-1)
WHEN CHARINDEX('(',名称,1) = 0 THEN 名称
END AS Name
FROM t1
) AS t2
GROUP BY t2.Name
SELECT SUBSTRING(名称, 1) 名称 ,
SUM(金额) 金额
FROM TB
GROUP BY SUBSTRING(名称, 1)
SELECT SUBSTRING(名称, 1, CHARINDEX('(', 名称, 1)-1) 名称 ,
SUM(金额) 金额
FROM TB
GROUP BY SUBSTRING(名称, 1, CHARINDEX('(', 名称, 1)-1)
--创建表以及初始化数据
IF(OBJECT_ID('TA','U') IS NOT NULL) DROP TABLE TA