比如:
要查询表一以“时间”为查询字段,查询一个时间范围内的结果,而且在表二以“状态”为查询字段,查询满足表一的时间范围之内,而且状态等于“0”的结果就显示出来。然后再删除。请高手教教。没有积分了,还是请帮忙。
表一的查询语句,(是SQL自动生成的我只知道这样搞)
SELECT *, 时间 AS Expr1
FROM yyksmx
WHERE (时间 > CONVERT(DATETIME, '2010-01-01 00:00:00', 102)) AND
(时间 < CONVERT(DATETIME, '2010-01-11 00:00:00', 102))
表二的查询语句:
SELECT *, 状态 AS Expr1
FROM yybrryjy
WHERE (状态 = '0')
结果就是要求,同时满足的情况下,就删除。表一,yyksmx中时间范围之内的数据。麻烦了。请高手指教一下。
当两个条件同时满足时,删除yyksmx表时间段的内容
追答你要删除yyksmx表时间段的内容?
这个时间段是一个列吗?
如果是的话,你要把这一列变为空的?
还是删除一行?
如果把时间短这一列变为空那就是修改了
如果是删除时间短所在的一行就是删除
你要哪种
估计你是要删除那一行了
delete yyksmx FROM yyksmx
inner join yybrryjy
on yybrryjy.住院序号=yyksmx .住院序号
WHERE (时间 > CONVERT(DATETIME, '2010-01-01 00:00:00', 102)) AND
(时间 < CONVERT(DATETIME, '2010-01-11 00:00:00', 102))
and yybrryjy.状态=0
第个表的图片
怎么贴出来啊。 截图片可以吗。
追答1.先SELECT 看看是否是你要删除的数据
select * from 表2
where state=0 and iD in
(
select iD from 表 1 where cast(时间 as date) between '2010-01-01' and '2010-01-11'
--你是否只要删除2010年1月份1号~11号的数据?
)
2.如果数据正确,删除
delete from 表2
where state=0 and Id in
(
select Id from 表 1 where cast(时间 as date) between '2010-01-01' and '2010-01-11'
--你是否只要删除2010年1月份1号~11号的数据?
)
是的。如果我搞清楚了这删除语句,然后时间段我可以随便改了。
追答用我写给你的SQL,看看查询出来的语句,是否是你需要删除的数据。ID是两个表的关联字段。
你这两个表有关联字段吗?