|
以下语句中的其中一句代码 “ case when (case when isdate(按合同应清款日期)='1' then 按合同应清款日期 else '" & Date & "' end) < '" & New_Date & "' then '已过' else 按合同应清款日期 end as 清款日期 ” 是想要实现:如果 字段 “按合同应清款日期” 是日期型的数据(字段 按合同应清款日期 的数据类型是 变长文本型,因 字段 按合同应清款日期 的内容有时会是“结算后一个月内”等的文字,而不全部是日期),则 将 字段 “按合同应清款日期” 与 时间变量“New_Date”进行比较,否则 用 系统当前日期 “Date” 与 时间变量“New_Date”进行比较。在时间比较过程中,如果 字段 “按合同应清款日期” 或 系统当前日期 “Date” 比 时间变量“New_Date” 小,则 新增的 字段 “清款日期”显示内容为“已过”,否则 新增的 字段 “清款日期”显示内容为 字段 “按合同应清款日期”的内容。
但是却不能得出正确的结果,执行后 新增的 字段 “清款日期” 的内容全部显示为 字段 “按合同应清款日期”的内容。
请大家帮忙修正代码,谢谢大家!
Sql_MX = "select 工程名称,乙方单位,甲方单位,竣工日期,Case when 结算金额 is null or 结算金额=0 then 合同金额 else 结算金额 end as 工程造价,结算日期,带资比例,带资比例*(Case when 结算金额 is null or 结算金额=0 then 合同金额 else 结算金额 end)/100 as 带资金额,按合同应清款日期,case when (case when isdate(按合同应清款日期)='1' then 按合同应清款日期 else '" & Date & "' end) < '" & New_Date & "' then '已过' else 按合同应清款日期 end as 清款日期,累计付款,余款,备注 from 数据集 WHERE " & Right(sqlstring, Len(sqlstring) - 4) & " order by 乙方单位" |
|