2015-04-07 91 views
0

我有一个表tblOriginal它看起来像这样(和无主键):如何插入aonther SQL Server表

employeeId code amount date 
----------------------------- 
emp01  sbk 10000 201501 
emp02  sbk 10002 201501 
emp02  cka 2000 201501 
emp03  sbk 10003 201501 
emp04  sbk 10004 201501 
emp01  sbk 20000 201502 
emp01  dgr 5000 201502 
emp02  sbk 20002 201501 
emp02  qaw 2000 201502 
emp02  dng 4000 201502 
emp03  sbk 20003 201502 
emp04  sbk 20004 201502 

我需要做的获得与代码SBK所有数据到表什么命名tblEmpemployeeId是主键),如下所示:

employeeId code amount date amount2 date2 
---------------------------------------------- 
emp01  sbk 10000 201501 20000 201502 
emp02  sbk 10002 201501 20002 201501 
emp03  sbk 10003 201501 20003 201502 
emp04  sbk 10004 201501 20004 201502 

然后拿到剩余的数据到名为tblOthers看如下另一个表。主键也是employeeId

employeeId code amount date code2 amount2 date2 
-------------------------------------------------- 
emp02  cka 2000 201501 
emp01  dgr 5000 201502 
emp02  qaw 2000 201502 dng 4000 201502 

我的问题是我不知道如何利用它具有相同的名称为employeeId到表中的数据和存储数据到列

任何帮助将是欣赏。

所有的表已经创建

+0

INSERT INTO T1选择... ...从...在那里我 – jarlh

+0

想到这绝对量2,但我的问题是关于'tblOriginal'有数据具有相同的** employeeId **,但日期不同但'tblEmp'和'tblOthers' ** employeeId **是我的'PRIMARY KEY',所以不应该有相同的数据* * employeeId ** – Esther

+0

您的tblOthers表存在一些问题。如果EmployeeId是主键,则它不能包含具有相同employeeId emp02的2行。 –

回答

-1

请参考以下链接:

http://www.w3schools.com/sql/sql_and_or.asp

SQL和&或运营商正在使用基于筛选记录不止一个条件。

操作实例 -

SELECT * FROM Customers WHERE Country='Germany' AND City='Berlin'; 

OR操作实例 -

SELECT * FROM Customers WHERE City='Berlin' OR City='München'; 

合并AND &或 -

SELECT * FROM Customers WHERE Country='Germany' AND (City='Berlin' OR City='München'); 
0

,如果有,可以用一些这样的事对其他表

;with temp as (
select empemployeeId, 
lag(amount,1,null) over (partition by empemployeeId ORDER BY date ASC) as amount, 
lag(date,1,null) over (partition by empemployeeId ORDER BY date ASC) as date, 
lag(amount,1,null) over (partition by empemployeeId ORDER BY date DESC) as amount2, 
lag(date,1,null) over (partition by empemployeeId ORDER BY date DESC) as date2, 
from tblOriginal 
) 
select empemployeeId,'sdk',amount,date,amount2,date2 into tblEmp from temp to 
where to.code='sdk'