我想在sql server中插入一些记录。我尝试查询,但插入所有记录和值重复。
我需要不重复值并插入一些记录。
表格文件
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显示上)
的结果谢谢你的时间。 :)
答案 0 :(得分:0)
由于1)full outer join
或者您在执行选择时没有使用distinct
,因此您可能会收到重复项(您有多行,因此会有多个值) 。 full outer join
不是你想要的,我不认为:你想要inner join
。