【问题标题】:inserting data from two tables into one将两个表中的数据插入到一个表中
【发布时间】:2013-07-21 09:51:02
【问题描述】:

我的问题是:

我有 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”的工人“约翰”在两个表中(白天,夜晚)时,问题就开始了

【问题讨论】:

  • 请告诉我们,您使用的是哪个数据库。
  • 我正在使用访问权限,我在那里进行查询..

标签: sql ms-access command conditional-statements


【解决方案1】:

您的代码中有 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

【讨论】:

  • 感谢您修复它.. 但是现在.. 只有在两个表中的 id 相同时才插入数据.. 如果表中有不同的工作人员怎么办?
【解决方案2】:

在这一行:

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

day_night 列不存在。我想你的意思是night_onenight_two

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 2011-10-10
    相关资源
    最近更新 更多