2016-09-16 3 views
0

目標用いてデータ削除:
はdateTblが日時

から変数@Removeを使用して、テーブルDateesのデータを削除し、結果は表Dateesで

'2016-01-1 00:00:00.000' 
'2016-01-4 00:00:00.000' 
'2016-01-5 00:00:00.000' 

であるべきです。

これは、データ

'2016-01-3 00:00:00.000' 
'2016-01-5 00:00:00.000' 

問題撤去しなければならないです:あなたは日時などのデータを持っているとき、私はちょうどこのコンテキストに関連した解決策を見つけることができません
を。

情報:上記のクエリは、テーブルDateesすべてのマッチングから削除されます

DELETE d 
FROM Datees AS d 
JOIN @remove AS t ON d.dateID = t.dateID 


は変数@Removeの内容は

CREATE TYPE dateTbl AS TABLE 
( 
    dateID datetime 
); 


CREATE TABLE Datees 
(
    dateID datetime 
); 

INSERT INTO Datees 
VALUES 
('2016-01-1 00:00:00.000'), 
('2016-01-2 00:00:00.000'), 
('2016-01-3 00:00:00.000'), 
('2016-01-4 00:00:00.000'), 
('2016-01-5 00:00:00.000') 

//------------------------ 

DECLARE @remove as dateTbl 

INSERT INTO @remove 
VALUES 
('2016-01-3 00:00:00.000'), 
('2016-01-4 00:00:00.000') 

select a.* 
from @remove a 
+1

あなたは簡単に消耗しやすいデータを投稿していい仕事をしました。しかし、私はあなたが何をしようとしているのか理解していません。 –

+1

Aaaaand希望の結果は? – Lamak

+0

日付を削除する場所はどこですか?(日付を@removeから選択) ? –

答えて

3

あなたはこのようなクエリを使用することができます異なる場合がありますテーブル変数@removeに記録します。

+0

なぜここにdownvoteがわからないのですか?これは、OPが探していたものに大きな推測と思われる。 –

+0

Plus1質問の複数の読み込みの後でも、これは正解です –

+0

皆さん、ありがとうございました! –

0

あなたはこれをしようとしています:

delete datees where dateid in (select dateid from @remove) 
+0

何らかの理由なくダウンボートした人を理解することは不可能です。おそらく彼らは理解していないのでそれをする;) –

+0

はいあなたは正しい –

0

おそらくこれはあなたが何を意味するのかである:

除去のため
DECLARE @Datees TABLE (dateID DATETIME); 

INSERT INTO @Datees 
VALUES ('2016-01-1 00:00:00.000'), 
     ('2016-01-2 00:00:00.000'), 
     ('2016-01-3 00:00:00.000'), 
     ('2016-01-4 00:00:00.000'), 
     ('2016-01-5 00:00:00.000'); 

------------------------ 

DECLARE @remove AS TABLE (dateID DATETIME); 

INSERT INTO @remove 
VALUES ('2016-01-3 00:00:00.000'), 
     ('2016-01-4 00:00:00.000'); 

SELECT * 
FROM @Datees d 
WHERE NOT EXISTS (SELECT * 
        FROM @remove r 
        WHERE r.dateID = d.dateID); 

delete 
    FROM @Datees 
    WHERE EXISTS (SELECT * 
         FROM @remove r 
         WHERE r.dateID = [@datees].dateID); 

は、しかし、DateTimeの値で、それは非常にではないかもしれません値に時間の部分がある場合でも簡単です。次に、比較のために文字列値にキャストまたは変換することができます。あなたがそのような必要性を持っている場合は、さらに情報を提供してください。