none
如何让只用一条命令实现多个表的操作?? RRS feed

  • 问题

  • 表1: 项目(nvarchar),收入合计(nvarchar),支出合计(nvarchar)

    表2: 项目(nvarchar),收入(int),支出(int)

    ------------------------------------------------------

    表内容:

    表1: 项目   收入合计   支出合计

            A           ''              ''

            B           ''              ''

    表2: 项目       收入         支出

            A            1              ''

            A             ''              1

            A             2              ''

            B             3              ''

    ---------------------------------------------------------------------- 

    希望得到的结果:

           项目     收入合计     支出合计

            A             3               1

            B             3               0

    -------------------------------------------------------------------------

    如何能只用用一条命令实现 根据表1中的项目,自动汇总表2中相应项目的合计,输出一张表单?

    也就是必须要先读取表1中的每一个条目,然后依据每个条目的"项目"栏的值查找表2中相应的"项目"栏的值的汇总!

    2010年11月13日 0:32

答案

  • UPDATE 表1 SET
    	收入合计 = B.收入合计,
    	支出合计 = B.支出合计
    FROM(
    	SELECT
    		A.项目,
    		收入合计 = SUM(B.收入),
    		支出合计 = SUM(B.支出)
    	FROM 表2 B, 表1 A
    	WHERE A.项目 = B.项目
    	GROUP BY A.项目
    )B
    WHERE B.项目 = 表1.项目
    
    
    • 已标记为答案 vboykk 2010年11月13日 8:29
    2010年11月13日 4:45

全部回复

  • UPDATE 表1 SET
    	收入合计 = B.收入合计,
    	支出合计 = B.支出合计
    FROM(
    	SELECT
    		A.项目,
    		收入合计 = SUM(B.收入),
    		支出合计 = SUM(B.支出)
    	FROM 表2 B, 表1 A
    	WHERE A.项目 = B.项目
    	GROUP BY A.项目
    )B
    WHERE B.项目 = 表1.项目
    
    
    • 已标记为答案 vboykk 2010年11月13日 8:29
    2010年11月13日 4:45
  • 如果只是查询结果的话, 则只需要B那个子查询就好了.

    • 已标记为答案 vboykk 2010年11月13日 8:29
    • 取消答案标记 vboykk 2010年11月14日 0:13
    2010年11月13日 4:46
  • 神啊!!今天终于让我见识到高人了!佩服得五体投地,泪流满面!!完全解决问题!!!!!

    2010年11月13日 8:29