SQL INSERT INTO使用SELECT语句,INNER JOIN使用where子句

时间:2016-03-24 08:09:41

标签: sql sql-server

我写了这个查询,用于将数据从一个表插入到另一个表中,表格字段CHECKTIME >= 12上的以下条件小时应插入到Att_process表中,此查询在SQL Server上成功执行但数据没有&# 39; t插入表中,但是小时> 12个数据也在表格中

INSERT INTO Att_process(USERID,checkout_time)
    SELECT 
        CHECKINOUT.USERID, CHECKINOUT.CHECKTIME
    FROM
        CHECKINOUT 
    INNER JOIN 
        Att_process ON CHECKINOUT.USERID = Att_process.USERID
    WHERE
        DATEPART(HOUR, CHECKTIME) >= 12;

enter image description here

任何人都可以帮助我真正感激

1 个答案:

答案 0 :(得分:1)

您的Att_process表中是否已有数据?

您正在尝试插入要加入的表中的Att_process表的User_ID。那么联接将如何产生数据呢?

请告诉我们Att_process表及其与CHECKINOUT表的关系。

可能你需要的是

INSERT INTO Att_process(USERID,checkout_time)
    (SELECT 
        CHECKINOUT.USERID, CHECKINOUT.CHECKTIME
    FROM
        CHECKINOUT         
    WHERE
        DATEPART(HOUR, CHECKTIME) >= 12;
    )