2

我想在 sql server 中插入一些记录。我尝试查询但插入所有记录和值重复。

我不需要重复值并插入一些记录。

表格文件TA

runNo   cDate           cIn         cOut    
00001   2012-10-09 00:00:00.000 2012-10-09 07:21:00.000 2012-10-09 20:34:00.000 
00005   2012-10-09 00:00:00.000 2012-10-09 07:36:00.000 2012-10-09 17:04:00.000 
00006   2012-10-09 00:00:00.000 2012-10-09 07:55:00.000 2012-10-09 20:34:00.000 
00007   2012-10-09 00:00:00.000 2012-10-09 07:50:00.000 2012-10-09 00:00:00.000 
00008   2012-10-09 00:00:00.000 2012-10-09 07:56:00.000 2012-10-09 20:35:00.000 
00009   2012-10-09 00:00:00.000 2012-10-09 07:57:00.000 2012-10-09 20:32:00.000 
00010   2012-10-09 00:00:00.000 2012-10-09 07:58:00.000 2012-10-09 19:03:00.000

此代码存储过程

SELECT 
     em.empNo,
     ISNULL(tf.cDate, '2012-10-09'),
     tf.cIn,tf.cOut
FROM 
     filesTA tf Full Outer join 
     Emp em On tf.runNo = em.empNo AND tf.cDate = '2012-10-09'

代码存储过程的结果(在 Datagridview 显示上)

empNo   cDate           cIn         cOut
00001   2012-10-09 00:00:00.000 2012-10-09 07:21:00.000 2012-10-09 20:34:00.000
00002   2012-10-09 00:00:00.000 NULL                    NULL
00003   2012-10-09 00:00:00.000 NULL                    NULL
00004   2012-10-09 00:00:00.000 NULL                    NULL
00005   2012-10-09 00:00:00.000 2012-10-09 07:36:00.000 2012-10-09 17:04:00.000
00006   2012-10-09 00:00:00.000 2012-10-09 07:55:00.000 2012-10-09 20:34:00.000
00007   2012-10-09 00:00:00.000 2012-10-09 07:50:00.000 2012-10-09 00:00:00.000
00008   2012-10-09 00:00:00.000 2012-10-09 07:56:00.000 2012-10-09 20:35:00.000
00009   2012-10-09 00:00:00.000 2012-10-09 07:57:00.000 2012-10-09 20:32:00.000
00010   2012-10-09 00:00:00.000 2012-10-09 07:58:00.000 2012-10-09 19:03:00.000

结果来自代码存储过程。它不是插入到 sql 中。但在 datagridview 上显示显示。

下一步。我需要插入记录 '00002'、'00003'、'00003'或 cIn 和 cOut = null 但我尝试插入所有记录和重复值。

这段代码是新的。

    Insert INTO 
    filesTA (runNo,cDate,cIn,cOut)
    VALUES 
   (SELECT 
        em.empNo,
        ISNULL(tf.cDate, '2012-10-09'),
        tf.cIn,tf.cOut
    FROM 
        filesTA tf Full Outer join Emp em 
        On tf.runNo = em.empNo AND tf.cDate = '2012-10-09')

我需要代码存储过程的结果(在 Datagridview 显示上)

谢谢你的时间。:)

4

1 回答 1

0

您可能会因为 1)full outer join或因为您在distinct选择时没有使用(您有多行,所以会有多个值)而获得重复项。 full outer join不是你想要的,我不认为:你想要的inner join

于 2013-02-13T23:54:37.553 回答