将两个表中的数据插入一个表中

时间:2013-07-22 15:20:06

标签: sql ms-access command conditional-statements

我的问题是:

我有3张桌子

Workers_DayWorkers_NightTotal

workers_Day表中:

ID, Name, Day_one, Day_two

workers_Night表中:

ID, Name, night_one, night_two

字段将填充100缺席且1正在工作)

TOTAL

ID, Name, Total_days_working, Total_nights_Working, Total

我想将表1和表2中的数据插入到表3中。 我这样做了一个查询,但它不起作用

insert into total (Id, name, Total_days_working, Total_nights_working, Total)
Select id,name,
IIf([day_one]>0,1,0)+IIf([day_two]>0,1,0) as day_workings,
IIf([night_one]>0,1,0)+IIf([night_two]>0,1,0) as Total_nights_working,
Total_days_working+Total_nights_working AS Total
From Workers_day,Workers_night
Where Workers_day.id = Workers_night.id

条件并非总是如此......

表中有时会有不同的工人 但是当ID为“3”的工人“John”在两个表(白天,黑夜)时,问题就开始了

2 个答案:

答案 0 :(得分:0)

在这一行:

IIf([day_night]>0,1,0)+IIf([day_night]>0,1,0) as Total_nights_working,

day_night不存在。我认为你的意思是night_onenight_two

答案 1 :(得分:0)

您的代码中有2个错误

正确的是:

insert into total (Id, name, Total_days_working, Total_nights_working, Total)
Select Workers_day.id,Workers_day.name,
IIf([day_one]>0,1,0)+IIf([day_two]>0,1,0) as Total_days_working,
IIf([night_one]>0,1,0)+IIf([night_two]>0,1,0) as Total_nights_working,
Total_days_working+Total_nights_working AS Total
From Workers_day,Workers_night
Where Workers_day.id = Workers_night.id