SELECT SUM
( ContractSum ) ContractSum
FROM
[dbo].[OutContract]
WHERE
contractComplate IN ( '执行中' )
AND DATEDIFF( MONTH, inputtime,'${dateinmonth(CONCATENATE(year,"-",month,"-1"),-1)}' ) = 1
SELECT SUM
( ContractSum ) ContractSum
FROM
[dbo].[OutContract]
WHERE
contractComplate IN ( '执行中' )
AND DATEDIFF( MONTH, inputtime,'${dateinmonth(CONCATENATE(year,"-",month,"-1"),-1)}' ) = 0
如果第二段SQL返回的结果是空数据,可以使用IFNULL函数将其转换为0,然后再对两段 SQL 进行相减,如下所示:
SELECT
(IFNULL(SUM(OutContract.ContractSum),0) - IFNULL(SUM(OutContract2.ContractSum),0)) AS ContractDifference
FROM
[dbo].[OutContract] OutContract
LEFT JOIN
[dbo].[OutContract] OutContract2
ON
OutContract.id = OutContract2.id
WHERE
OutContract.contractComplate IN ('执行中')
AND DATEDIFF(MONTH, OutContract.inputtime, '${dateinmonth(CONCATENATE(year,"-",month,"-1"),-1)}') = 1
AND DATEDIFF(MONTH, OutContract2.inputtime, '${dateinmonth(CONCATENATE(year,"-",month,"-1"),-1)}') = 0