我在SQL Server 2005中有以下表结构。
AttenID, Date, EmpID,....
)AttenID, OfficeOut, OfficeIn
)AttenID, OfficeOut, OfficeIn
)AttenID, OfficeOut, OfficeIn
)EmpID, AttenID, Detail, OfficeOut, OfficeIn
)我需要一个纯SQL代码才能将数据从table 5
插入table 1,2,3,4
,以便:
AttendanceDetail
有EmpID=100
,Table 2,3,4
与AttenID
的{{1}}匹配AttendanceDetail
。 我用光标和循环尝试了但是无法得到我想要的东西,它插入的记录超出了我的意愿。请帮我。在此先感谢
应根据AttendanceDetail中的AttenID,从3个表A_OfficialDetail,A_recessdetail和A_PersonalDetail中插入OfficeOut和OfficeIn。主要目的是在Atten_Temp_AttenDetail表中插入Official Out-in,Recess Out-in和Personal Out-in的数据。该表应该看起来像:
EmpID=100
我尝试的代码是
==================================
UserID AttenID Date Remark OfficeOut OficeIN
100 12 7/8/2011 Office 11:00 12:00
100 12 7/8/2011 Office 13:45 14:00
答案 0 :(得分:1)
这看起来真的很简单......
INSERT INTO Atten_Temp_AttenDetail
SELECT
a.EmpID,
a.AttenID,
'', -- You have no fields for this in the database, may be in AttendanceDetail
b.OfficeOut, -- With the next two, not sure if you want to use A_OfficialDetail or A_Personal Detail
c.OfficeIn
FROM AttendanceDetail a
INNER JOIN A_OfficialDetail b ON a.AttenID = b.AttenID
INNER JOIN [A_Personal Detail] c ON a.AttenID = c.AttenID
INNER JOIN A_RecessDetail d on a.AttenID = d.AttenID
WHERE a.EmpID = 100
你在追求什么?
答案 1 :(得分:0)
我首先要做一个查询,也许是通过使用连接,这给了我应该保存的结果。
然后它只是一种选择,以便在Atten_Temp_AttenDetail中保存数据。
SQL和连接应该如何,取决于表之间的关系
更新:如果表2,3,4或多或少相同,那么如何使用UNION?