--因为你没给哪个年,现在的语句取本年 --另外不知道你是要更新旧数据,还是只要查询的时候替换 --查询的时候替换 SELECT 客户,[3月金额] ,CASE WHEN [3月付款]<>''THEN[3月付款] WHEN [3月金额]<=0 OR [3月金额]IS NULL THEN '--------' WHEN DATEADD(DAY,账期,CONVERT(VARCHAR(5),GETDATE(),120)+'03-01')>=GETDATE() THEN '逾期未付' ELSE '逾期' END [3月付款],账期 FROM TB --更新旧数据 UPDATE TB SET [3月付款]=(CASE WHEN [3月付款]<>''THEN[3月付款] WHEN [3月金额]<=0 OR [3月金额]IS NULL THEN '--------' WHEN DATEADD(DAY,账期,CONVERT(VARCHAR(5),GETDATE(),120)+'03-01')>=GETDATE() THEN '逾期未付' ELSE '逾期' END) WHERE [3月付款]IS NULL OR [3月付款]=''
--另外不知道你是要更新旧数据,还是只要查询的时候替换
--查询的时候替换
SELECT 客户,[3月金额]
,CASE WHEN [3月付款]<>''THEN[3月付款]
WHEN [3月金额]<=0 OR [3月金额]IS NULL THEN '--------'
WHEN DATEADD(DAY,账期,CONVERT(VARCHAR(5),GETDATE(),120)+'03-01')>=GETDATE()
THEN '逾期未付'
ELSE '逾期'
END [3月付款],账期
FROM TB
--更新旧数据
UPDATE TB
SET [3月付款]=(CASE WHEN [3月付款]<>''THEN[3月付款]
WHEN [3月金额]<=0 OR [3月金额]IS NULL THEN '--------'
WHEN DATEADD(DAY,账期,CONVERT(VARCHAR(5),GETDATE(),120)+'03-01')>=GETDATE()
THEN '逾期未付'
ELSE '逾期'
END)
WHERE [3月付款]IS NULL OR [3月付款]=''