我有3张表
A  表                               B表                                    C表
ID  CD  MIN  MAX         ID    CX1   CX2  CX3                  ID    XX
1   3   200  500          1    18     0   19                    1                     
2   2   200  500          1    15    15   12                    2
3   1   200  500          1     9    20    5                    3
                         
                          2     5     6    7
                          2     6     5    15                          3     22    7    9我想让 B表的 3列 CX1  CX2  CX3  所有的植加在一起和 A表 的 MIN  MAX  比较 如果比MIN小  那么就往C表的XX 里插入-1
如果比MAX大就往 C表里的XX 插入1 
我是拿VS2005 和 SQL2000做的...
大家有什么简单的方法么? 我想过用dataTable 帮定A表 然后遍历每一行的 ID  然后在B表里的ID里面把植相加  在写入C表..

解决方案 »

  1.   

    insert into C
      value
      (
          select 
            a.id,
            case when b1.total < a.min then -1
                 when b1.total > a.max then 1
                 else 0
            end case as xx
          from
            (
              select sum(cx1)+sum(cx2)+sum(cx3) as total,
                     id
                from b
               group by b.id
            ) b1,
            a
          where b1.id = a.id
      )
      

  2.   

    最好的方式是用SQLServer的触发器
      

  3.   

    insert into testc
      value
      (
          select 
            a.id,
            case when b1.total < a.min then -1
                 when b1.total > a.max then 1
                 else 0
            end as xx
          from
            (
              select id,
                     sum(c1)+sum(c2)+sum(c3) as total                 
                from testb b
               group by b.id
            ) b1,
            testa a
          where b1.id = a.id
      )如果不想要 min, max 区间内的话,只要在where b1.id=a.id后面加上限制条件:
            and (b1.total < a.min 
             or  b1.total > a.max)
      

  4.   

    要是用 Web 应用程序的窗体    该怎么办呢?   想不出来了,抓狂啊~!
      

  5.   

    还有是就  我的C表只有列 没有植
       要完全按照A 表的ID 添加ID和植
      

  6.   

    上面的SQL满足C表没有值的要求阿。
    你只要用 DbCommand.ExecuteNonQuery 该SQL就可以了。
      

  7.   

    服务器: 消息 156,级别 15,状态 1,行 5
    在关键字 'select' 附近有语法错误。
    服务器: 消息 170,级别 15,状态 1,行 20
    第 20 行: ')' 附近有语法错误。
         昏~!