我有两个表:History(CardID,StationID,StationHeadID,InStationHeadTime,OutStationHeadTime) 
StationTimeTemp(CardID,StationID,StationHeadID,InOROut,InStationHeadTime)
其中表StationTimeTemp的主键为(CardID,StationID,StationHeadID)共同组成,
想通过主键查询得到表StationTimeTemp的InStationHeadTime属性列作为History的InStationHeadTime列值,连同其他列值
一起插入表History,请问SQL语句怎么写啊?

解决方案 »

  1.   

    insert into history
    select
       CardID
      ,StationID
      ,StationHeadID
      ,InStationHeadTime=case InOROut when 'IN' then InStationHeadTime end
      ,OutStationHeadTime=case InOROut when 'OUT' then InStationHeadTime end
    from StationTimeTemp
    ?
      

  2.   

    不对呢,history的其他属性是已知的,只有这个InStationHeadTime属性是从StationTimeTemp查询得到的。
      

  3.   

    不理解你的意思...难道用UPDATE吗?
      

  4.   

     说的不太清楚,估计就是 update了。
      

  5.   

    我有两个表:History(CardID,StationID,StationHeadID,InStationHeadTime,OutStationHeadTime) 
    StationTimeTemp(CardID,StationID,StationHeadID,InOROut,InStationHeadTime) 
    其中表StationTimeTemp的主键为(CardID,StationID,StationHeadID)共同组成, 
    现在通过硬件读到History里的(CardID,StationID,StationHeadID,OutStationHeadTime) 这四个属性,而另外一个属性需要从StationTimeTemp根据主键查询得到(这是硬件之前读到的数据),然后和硬件读到的数据一起写入History,怎么实现?
      

  6.   

    select CardID,StationID,StationHeadID,OutStationHeadTime,(select InStationHeadTime from StationTimeTemp where ... ) as InStationHeadTime 
    from History