将数据从一列复制到另一列以获取报告

时间:2012-06-15 17:43:18

标签: sql sql-server

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

  • Cheque_status
  • 查看退回日期
  • Policy_status_change_date

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

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

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

1 个答案:

答案 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进行比较而不是实际文本 - 如果您想要更改文本的话状态稍后,您不必更新所有查询。