2017-03-08 4 views
-2
ID LogDate  LogTime   InoutMode  
    1 2017-02-23 19:30:00.0000000 1 
    2 2017-02-23 20:00:00.0000000 0 
    3 2017-02-23 20:30:00.0000000 1 
    4 2017-02-23 21:00:00.0000000 0 
    5 2017-02-23 21:30:00.0000000 1 
    6 2017-02-24 08:00:00.0000000 0 

Le résultat ci-dessus provient d'une table temporaire. Maintenant, je souhaite insérer LogTime dans une autre table temporaire comme ci-dessous.Comment insérer des lignes d'une table temporaire à une autre en sql

 InOutMode-1 =>InTime 
     InOutMode-0 =>OutTime 

    InTime   OutTime 
    19:30:00.0000000 20:00:00.0000000 
    20:30:00.0000000 21:00:00.0000000 
    21:30:00.0000000 08:00:00.0000000 
+0

Il est déjà répondu à vérifier http://stackoverflow.com/a/42665218/7012137, son même, il vous suffit de la date séparée colonne – Pream

Répondre

0

Utiliser 2 cte's, un pour InoutMode avec 1 et autre pour 0 et également donner le numéro de ligne en fonction de l'ordre de la colonne Id ou des colonnes date et heure. Alors rejoignez ces 2 cte.

Recherche

;with cte as(
    select [rn] = row_number() over(
     order by [Id] -- also order by [LogDate], [LogTime] 
    ), * 
    from #your_temp_table_name 
    where [InoutMode] = 1 
), 
cte2 as(
    select [rn] = row_number() over(
     order by [Id] -- also order by [LogDate], [LogTime] 
    ), * 
    from #your_temp_table_name 
    where [InoutMode] = 0 
) 
select 
    t1.[LogTime] [InTime], 
    t2.[LogTime] [OutTime] 
from cte t1 
left join cte2 t2 
on t1.[rn] = t2.[rn]; 

Si vous voulez que le jeu de résultats dans une nouvelle table temporaire. Ensuite, la dernière partie peut être modifiée comme

select 
    t1.[LogTime] [InTime], 
    t2.[LogTime] [OutTime] 
into #your_new_temp_table_name 
from cte t1 
left join cte2 t2 
on t1.[rn] = t2.[rn]; 

Find demo here

0

Utilisez INSERT INTO .. SELECT FROM construction comme

insert into #temp2 
select ID, LogDate, 
case when InoutMode = 1 then LogTime end as InTime, 
case when InoutMode = 0 then LogTime end as OutTime, 
InoutMode  
from #temp1 
1

Pour insérer la ligne d'une table dans une autre table, vous pouvez écrire cette requête SQL:

INSERT INTO anotherTemp (InTime) 
    SELECT LogTime 
    FROM Temp 
    WHERE InoutMode = 1 

INSERT INTO anotherTemp (OutTime) 
    SELECT LogTime 
    FROM Temp 
    WHERE InoutMode = 0 

Voir ce lien pour plus http://www.dofactory.com/sql/insert-into