条件:相同的账号,type=1数据有,type=3数据无,且账户性质为“基本存款账户”or“临时机构临时存款账户”or“非临时机构临时存款账户”or“预算单位专用存款账户”or“临时存款账户”。#字符 会通过replaceAll替换。
即在同一个table表里:
......  account字段   type 字段   Property账户性质......
            a              1           x
            a              3           X
            b              1           X
            c              1           Y
            c              3           Y
想找到b   1这条数据,然后把请问该如何写?问题在哪里?insert into sysresult
(
  `Bank_Name`,
  `Bank_code`,
  `Account`,
  `Account_Name`,
  `Account_Property`,
  `BankInnerDate`,
  `BankRevocationDate`,
  `type`,
  `ResultType`,
  areaId,
  resultBankId,
  bankId,
  optor

 select 
   Bank_Name,
   Bank_code,
   Account,
   Account_Name,
   Account_Property,
   Bank_inner_date ,
   RevocationDate,
   type,
   1 as state,
   #areaId as areaId ,
   #resultBankId as resultbank,
   #bankId as bankId,
   #optor as optor 
 from 
   #table T
 WHERE 
   type=1
  AND T.`Account` not in (SELECT Account FROM #table WHERE type=3) 
  AND  T.`Account_Property` in ('基本存款账户','临时机构临时存款账户','非临时机构临时存款账户','预算单位专用存款账户','临时存款账户')

解决方案 »

  1.   

    insert into sysresult(`Bank_Name`,`Bank_code`,`Account`,`Account_Name`,`Account_Property`,`BankInnerDate`,`BankRevocationDate`,`type`,`ResultType`,areaId,resultBankId,bankId) select Bank_Name,Bank_code,Account,Account_Name,Account_Property,Bank_inner_date ,RevocationDate,type,1 as state,#areaId as areaId ,#resultBankId as resultbank,#bankId as bankId from #table WHERE type=1 AND Account not in (SELECT Account FROM #table WHERE type=3) AND  Account_Property in ('基本存款账户','临时机构临时存款账户','非临时机构临时存款账户','预算单位专用存款账户','临时存款账户')另外调整了下,请看下是不是该这样写?暂时没法调试
      

  2.   

    没看明白你的意思,不过如果是同一个表,你可以用别名来控制例如:select * from table as a left join table as b on a.XX=b.XX
      

  3.   

     (不要高估你的汉语表达能力或者我的汉语理解能力)
       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  4.   

    select * from sysresult a where type=1 and 
    not exists(select 1 from sysresult where type=3 and a.`Account`=`Account`)
    AND  `Account_Property` in ('基本存款账户','临时机构临时存款账户','非临时机构临时存款账户','预算单位专用存款账户','临时存款账户')
      

  5.   

    用别名意义不大。主要是账号相同的情况下,用type=1的记录查找type=3的记录,如果没有,则取出这条记录
      

  6.   

    回3楼
    sysresult表就这些字段`Bank_Name`,`Bank_code`,`Account`,`Account_Name`,`Account_Property`,`BankInnerDate`,`BankRevocationDate`,`type`,`ResultType`,areaId,resultBankId,bankIdmysql5.02版本