34,590
社区成员
发帖
与我相关
我的任务
分享
--> 测试数据: #T
if object_id('tempdb.dbo.#T') is not null drop table #T
create table #T (客户姓名 varchar(4),分公司 varchar(4),状态 varchar(5),交款日期 datetime)
insert into #T
select '李1','江苏','已签1','08-3-1' union all
select '李2','山东','已签2','08-4-6' union all
select '李3','江苏','已签2','08-2-18' union all
select '李4','安徽','已签1','08-1-6' union all
select '李5','江苏','已签2','08-3-10' union all
select '李6','山东','已签1','08-2-19' union all
select '李7','江苏','已签2','08-3-15' union all
select '李8','江苏','已签1','08-3-11' union all
select '李9','江苏','已签2','08-2-1' union all
select '李10','江苏','已签1','08-3-5'
select * from #T where (状态='已签1' or convert(varchar(6),交款日期,112)=200803) and 分公司='江苏'
/*
客户姓名 分公司 状态 交款日期
---- ---- ----- -----------------------
李1 江苏 已签1 2008-03-01 00:00:00.000
李5 江苏 已签2 2008-03-10 00:00:00.000
李7 江苏 已签2 2008-03-15 00:00:00.000
李8 江苏 已签1 2008-03-11 00:00:00.000
李10 江苏 已签1 2008-03-05 00:00:00.000
*/
create table tmp (
客户姓名 varchar(5),
分公司 varchar(6),
状态 varchar(6),
交款日期 datetime
)
insert into tmp
select '李1','江苏','已签1','08-3-1' union all
select '李2','山东','已签2','08-4-6' union all
select '李3','江苏','已签2','08-2-18' union all
select '李4','安徽','已签1','08-1-6' union all
select '李5','江苏','已签2','08-3-10' union all
select '李6','山东','已签1','08-2-19' union all
select '李7','江苏','已签2','08-3-15' union all
select '李8','江苏','已签1','08-3-11' union all
select '李9','江苏','已签2','08-2-1' union all
select '李10','江苏','已签1','08-3-5'
select *
from tmp
where 分公司='江苏' and (状态='已签1' or (交款日期 >= '2008-3-1' and 交款日期 < '2008-4-1'))
/*
客户姓名 分公司 状态 交款日期
----- ------ ------ ------------------------------------------------------
李1 江苏 已签1 2008-03-01 00:00:00.000
李5 江苏 已签2 2008-03-10 00:00:00.000
李7 江苏 已签2 2008-03-15 00:00:00.000
李8 江苏 已签1 2008-03-11 00:00:00.000
李10 江苏 已签1 2008-03-05 00:00:00.000
(所影响的行数为 5 行)
*/