【发布时间】:2014-05-15 21:13:35
【问题描述】:
我有一张表 Transaction_tbl 包含这些列:
transactid Tbarcode dtime
1 100 2013-04-16 14:15:47.243
2 101 2013-05-10 10:15:47.243
3 102 2014-02-20 02:15:48.000
在此表中,transactid 是主键。
我还有一张表 KHanger_tbl 包含这些列:
transactid Hbarcode
1 21
2 22
3 23
在我的KHanger_tbl 这个transactid is the foregin key
我想将日期范围 Transaction 表移动到另一个名为 Transaction2013.. 的表(我的意思是 2013 年的数据)
所以我写了这样的查询:
第一次查询
SELECT *
INTO transaction2013
FROM transaction_tbl
WHERE dtime <= '2013-12-30'
第二次查询
SELECT k.transactid,
k.tid,
k.requested,
k.hbarcode,
k.reqloc,
k.delivered
INTO khanger2013
FROM khanger_tbl k
INNER JOIN transaction_tbl t
ON t.transactid = k.transactid
WHERE t.dtime <= '2013-12-30'
然后我想从 Khanger_tbl 和 Transaction_tbl 中删除相应的 2013 年数据,所以首先我写了这样的查询:
DELETE FROM khanger_tbl
WHERE EXISTS (SELECT 1
FROM khanger_tbl
INNER JOIN transaction_tbl
ON transaction_tbl.transactid =
khanger_tbl.transactid
AND transaction_tbl.dtime <= '2013-12-30');
但这已删除我的整个 KHanger_tbl ..我的查询有什么问题?
【问题讨论】:
标签: sql sql-server sql-server-2008