怎樣在已知月的基礎上查上月的記錄,是不是這樣的
SELECT *, CAST(CAST(sum1 / sum2 * 100 AS decimal(10, 2)) AS varchar(10))
+ '% ' AS sum12
FROM (SELECT *
FROM (SELECT SUM(subqty) AS sum1
FROM dbo.suboqa
WHERE checkdate > = @starttime AND
checkdate <= @endtime AND resultd = 1) a JOIN
(SELECT SUM(subqty) AS sum2
FROM dbo.suboqa
WHERE checkdate > = @starttime AND
checkdate <= @endtime) b ON 1 = 1) c
UNION ALL
(SELECT *, CAST(CAST(sum1 / sum2 * 100 AS decimal(10, 2)) AS varchar(10))
+ '% ' AS sum12
FROM (SELECT *
FROM (SELECT SUM(subqty) AS sum1
FROM dbo.suboqa
WHERE checkdate > = dateadd(day, - 30, @starttime) AND
checkdate <= dateadd(day, - 30, @endtime) AND
resultd = 1) a JOIN
(SELECT SUM(subqty) AS sum2
FROM dbo.suboqa
WHERE checkdate > = dateadd(day, - 30, @starttime) AND
checkdate <= dateadd(day, - 30, @endtime)) b ON
1 = 1) c)
[解决办法]
create proc test_p @year int,@month int
as
declare @dt datetime
set @dt=rtrim(@year)+right(100+@month-1,2)+ '01 '
select * from 表名
where 时间列 between CONVERT(datetime,CONVERT(char(8),@dt,120)+ '1 ') and
DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+ '1 ')+ ' 23:59:59 '