按类别分组

m.g*_*naj 0 sql t-sql sql-server-2008

我有一组物品.每个组都有主要项目或标题,假设该组中有项目.

我想在这个组中选择这些项目并对它们进行一些数学计算,让我们说我想总结它们.

例如:这样的表

Code          Description        Price
-----------   -------------      -----
12-5000       Toys
12-5000-100   FIFA Game          200$
12-5000-200   PEPSI MAN          150$
12-5000-300   X-MEN              120$
12-6000       Movies
12-6000-100   Scarface           200$
12-6000-200   BADBOYS1           200$
12-6000-300   GODFAther1         120$
Run Code Online (Sandbox Code Playgroud)

我渴望得到的结果:

Description   Total
-----------   -----
Toys          470
Movies        520
Run Code Online (Sandbox Code Playgroud)

Aar*_*and 6

;WITH x AS 
(
   SELECT Code, Description FROM dbo.Table 
   WHERE price IS NULL -- =0? can't tell what blank means
)
SELECT x.Description, SUM(t.Price)
 FROM dbo.Table AS t
 INNER JOIN x 
 ON LEFT(t.Code, 7) = x.Code
 AND t.Code > x.Code
 GROUP BY x.Description;
Run Code Online (Sandbox Code Playgroud)

编辑

因为我们已经知道价格确实存储为像'400$'... 一样的字符串...

;WITH x AS 
(
   SELECT Code, Description FROM dbo.Table 
   WHERE LEN(price) = 0
)
SELECT x.Description, SUM(CONVERT(DECIMAL(18,2), REPLACE(t.Price,'$','')))
 FROM dbo.Table AS t
 INNER JOIN x 
 ON LEFT(t.Code, 7) = x.Code
 AND t.Code > x.Code
 GROUP BY x.Description;
Run Code Online (Sandbox Code Playgroud)