表1:
  指标代码                     数量
   ak3000                 20
表2:
    指标名                          数量
    [ak3000]指标                   30我想要做的是:
    首先将表2中的指标名改为        指标代码   指标名
            即 [ak3000]指标         ak3000    指标
然后
得到表1和表2对应项的差值

解决方案 »

  1.   

    Create Table 表1
    (指标代码 Varchar(10),
     数量 Int)
    Insert 表1 Select    'ak3000',                 20Create Table 表2
    (指标名 Nvarchar(10),
     数量 Int)
    Insert 表2 Select N'[ak3000]指标',                   30
    GO
    Select 
    B.指标代码,
    B.指标名,
    B.数量 - A.数量 As 差值
    From
    表1 A
    Inner Join 
    (Select 
    Substring(指标名, 2, CharIndex(']', 指标名) - 2) As 指标代码,
    Stuff(指标名, 1, CharIndex(']', 指标名), '') As 指标名,
    数量
    From 表2) B
    On A.指标代码 = B.指标代码
    GO
    Drop Table 表1, 表2
    --Result
    /*
    指标代码 指标名 差值
    ak3000 指标 10
    */
      

  2.   

    如果你只是想得到差值,也可以不用拆分。Create Table 表1
    (指标代码 Varchar(10),
     数量 Int)
    Insert 表1 Select    'ak3000',                 20Create Table 表2
    (指标名 Nvarchar(10),
     数量 Int)
    Insert 表2 Select N'[ak3000]指标',                   30
    GO
    Select 
    B.指标名,
    B.数量 - A.数量 As 差值
    From
    表1 A
    Inner Join 
    表2 B
    On CharIndex('[' + A.指标代码 + ']', B.指标名) > 0
    GO
    Drop Table 表1, 表2
    --Result
    /*
    指标名 差值
    [ak3000]指标 10
    */
      

  3.   

    可以把表一加上[]及指标。
    select b.*,b.数量-a.数量 as 差值 from 表2 b inner join 
    (
    select 数量,'['+指标代码+']'+'指标' as 指标名 from 表1
    ) a on b.指标名=a.指标名
      

  4.   

    select  b.指标代码,
     substr(b.指标名,charindex(b.指标名,']')+1) as 指标名,
    (b.数量-a.数量) as 数量
    from 表1 a,表2 b
    where b.指标代码=substr(b.指标名,2,charindex(b.指标名,']')-2)
      

  5.   

    服务器: 消息 195,级别 15,状态 10,行 2
    'substr' 不是可以识别的 函数名。为什么我运行后是这个结果,是什么地方需要启用吗?
      

  6.   

    在hrb2008() 的回答中提到:
    '可以把表一加上[]及指标。
    select b.*,b.数量-a.数量 as 差值 from 表2 b inner join 
    (
    select 数量,'['+指标代码+']'+'指标' as 指标名 from 表1
    ) a on b.指标名=a.指标名  '我运行后的结果是: 服务器: 消息 195,级别 15,状态 10,行 2
    'substr' 不是可以识别的 函数名。为什么我运行后是这个结果,是什么地方需要启用吗?
      

  7.   

    shine_yuan() ( ) 信誉:100    Blog  2007-03-06 12:57:13  得分: 0  
     
     
       服务器: 消息 195,级别 15,状态 10,行 2
    'substr' 不是可以识别的 函数名。为什么我运行后是这个结果,是什么地方需要启用吗?
      
     
    -------不是什麼地方需要啟用,是他們寫錯了,MS SQL中只有substring,沒有substr.
      

  8.   

    你直接用ctrl+c再来个ctrl+v就搞定赛............................