我有一张桌子MIS_Details
;它有以下列:
我正在使用选择查询在Excel中创建报告。
我的要求如下:如果检查状态列的值为'Cheque Bounce'
,我需要将该记录的检查退回日期复制到Policy_status_change_date
,但不更新数据库中的表。
这只是为了在报告中显示,所以我无法使用更新。
答案 0 :(得分:0)
通常,您应该能够使用案例陈述来查看cheque status
列中的值是否与您的文字相匹配,如果是,请使用退回日期作为Policy_status_change_date
列的值(语法可能会有所不同,具体取决于提供数据的数据库类型)。
SELECT
ChequeStatus
,ChequeBounceDate
,CASE
WHEN ChequeStatus = 'Cheque Bounce'
THEN ChequeBounceDate
ELSE Policy_status_change_date
END AS Policy_status_change_date
FROM
MIS_Details
此外,在设计说明中,您可能希望将可能的状态存储在另一个表中,以便您只使用状态ID进行比较而不是实际文本 - 如果您想要更改文本的话状态稍后,您不必更新所有查询。