2012-11-01 42 views
2

我想在sql server中插入一些記錄。我嘗試查詢,但插入所有記錄和值重複。如何在Sql中插入一些記錄?

我需要不重複值並插入一些記錄。

表filesTA

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中顯示)的代碼導致

感謝您的寶貴時間。 :)

+3

幫助那些想要幫助你的人可以準備http://sqlfiddle.com/測試用例,然後將它發佈在你的答案中。 –

回答

0

您可能因爲1)full outer join或因爲您在執行選擇時沒有使用distinct(您有多行,因此會有多個值)而獲取重複項。 full outer join是不是你想要的,我不認爲:你想要inner join