当前位置: 代码迷 >> VC >> SQL 交叉查询解决办法
  详细解决方案

SQL 交叉查询解决办法

热度:5759   发布时间:2013-02-25 00:00:00.0
SQL 交叉查询
ID               DDBH           COLOR1       Amount1       COLOR2       Amount2     COLOR3       Amount3
19 T33338 红色 75.00 白色 150.00 绿色           100.00
20 T33338 棕色 30.00 黑色 60.00 紫色           500.00
21 T33338 青色 30.00 蓝色 60.00 灰色           20.00
22 T33338 灰色 15.00 棕色 30.00 红色           40.00
上面是   数据
如何用SQL   语句查出   所有颜色分类的   amount1,amount2,amount3   的总和
结果如:

        红色 115.00     白色     150.00     绿色       100.00   棕色60.00   黑色   60.00   紫色           500.00   青色   30.00   蓝色   60.00   灰色   35.00

------解决方案--------------------------------------------------------
SELECT A.COLOR,ISNULL(SUM(QTY),0) AS QTY
FROM (
SELECT ISNULL(COLOR1, ' ') AS COLOR,ISNULL(SUM(AMOUNT1),0)AS QTY
FROM COLOR
GROUP BY COLOR1
UNION ALL
SELECT ISNULL(COLOR2, ' ') AS COLOR,ISNULL(SUM(AMOUNT2),0)AS QTY
FROM COLOR
GROUP BY COLOR2
UNION ALL
SELECT ISNULL(COLOR3, ' ') AS COLOR,ISNULL(SUM(AMOUNT3),0)AS QTY
FROM COLOR
GROUP BY COLOR3
) A
GROUP BY A.COLOR
  相关解决方案