Sql server 在同一个表中比较SQL Server中的两个句点
结果在2个选择需要它在一个结果 我有一个表需要比较同一分支机构去年的销售额,这是在SQL Server中。谢谢你的帮助Sql server 在同一个表中比较SQL Server中的两个句点,sql-server,Sql Server,结果在2个选择需要它在一个结果 我有一个表需要比较同一分支机构去年的销售额,这是在SQL Server中。谢谢你的帮助 DECLARE @fdate as date DECLARE @secdate as date SET @fdate = '01-01-2020'; SET @secdate = (SELECT CONVERT(VARCHAR(10), getdate(), 110)); SELECT trans.STORE As 'Store Number' , (S
DECLARE @fdate as date
DECLARE @secdate as date
SET @fdate = '01-01-2020';
SET @secdate = (SELECT CONVERT(VARCHAR(10), getdate(), 110));
SELECT
trans.STORE As 'Store Number' ,
(SUM (trans.NETAMOUNT * -1)) AS sales2019
FROM
RETAILTRANSACTIONSALESTRANS AS trans
WHERE
trans.TRANSDATE BETWEEN @fdate AND @secdate
GROUP BY
trans.STORE
SELECT
trans.STORE AS 'Store Number' ,
(SUM (trans.NETAMOUNT * -1)) AS sales2018
FROM
RETAILTRANSACTIONSALESTRANS AS trans
WHERE
trans.TRANSDATE between DATEADD(YEAR, -1, @fdate) and DATEADD(YEAR, -1, @secdate) -- same reply Form Mr. marc_s
GROUP BY
trans.STORE
我猜你想让两个结果同时出现 您可以使用条件case语句来实现这一点
DECLARE @fdate as date
DECLARE @secdate as date
SET @fdate = '20200101';
SET @secdate = GETDATE();
SELECT
trans.STORE As 'Store Number' ,
SUM (CASE WHEN trans.TRANSDATE BETWEEN @fdate
AND @secdate
THEN trans.NETAMOUNT * -1 END) AS sales2019,
SUM (CASE WHEN trans.TRANSDATE BETWEEN DATEADD(YEAR, -1, @fdate)
AND DATEADD(YEAR, -1, @secdate)
THEN trans.NETAMOUNT * -1 END) AS sales2018
FROM
RETAILTRANSACTIONSALESTRANS AS trans
WHERE
trans.TRANSDATE BETWEEN @fdate
AND @secdate
OR trans.TRANSDATE BETWEEN DATEADD(YEAR, -1, @fdate)
AND DATEADD(YEAR, -1, @secdate)
GROUP BY
trans.STORE
注意:在分配给@secdate
之前,不必将GETDATE()
转换为字符串,因为@secdate
是一种date
数据类型。
最好以YYYYMMDD格式指定日期字符串文字不要使用
@fdate-365
-首先-不清楚这是365天、小时还是分钟。。。。另外:不处理闰年。使用DATEADD(年份-1,@fdate)
insteadMr。marc_s Plz你能看到帖子吗?问题有两个结果,我需要一个结果