0

我有一张桌子MIS_Details;它有以下列:

  • Cheque_status
  • 检查退回日期
  • Policy_status_change_date

我正在使用选择查询在 Excel 中创建报告。

我的要求如下:如果检查状态列有值'Cheque Bounce',我需要将该记录的检查退回日期复制到Policy_status_change_date但不更新数据库中的表。

这只是为了显示在报告中,所以我不能使用更新。

4

1 回答 1

0

通常,您应该能够使用 case 语句来查看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 而不是实际文本进行比较 - 如果您想稍后更改状态文本,您不必更新所有查询。

于 2012-06-15T17:55:34.637 回答