0

我不确定如何命名标题,所以提前抱歉。

无论如何,我有以下 SQL SELECT 查询(Oracle)来搜索请求的特定状态:

SELECT ib.incident_id,
       ib.incident_status_id
  FROM cs_incidents_all_b ib, cs_incidents_all_tl it
  WHERE ib.incident_id = it.incident_id
   AND ib.incident_status_id IN (
    SELECT st.incident_status_id
      FROM cs_incident_statuses_tl st
      WHERE st.NAME IN
             ('Accept Order',
              'Order Accepted',
              'Address Retrieved',
              'Analyze',
              'Entered',
              'Information Retrieved',
              'Retrieve Address',
              'Retrieve Information',
              'Returned'));

目前,在运行此查询时,我在最后一列( event_status_id )中得到以下输出:103

这个数字是cs_incident_statuses_tl表中的一个键,并且在该表中,有一个名为列的名称,它具有一个明文字符串,在本例中为“分析”。

如何修改上面的 SELECT 查询,以便在运行时返回不显示 103 而是显示“分析”?我已经尝试过各种 JOIN,但我还没有找到一个很好的方法来呈现明文描述。

非常感谢任何帮助,在此先感谢!对不起,如果这个问题很愚蠢,SQL 远非我的强项。:)

4

2 回答 2

1

A bit clumsy,but try

SELECT ib.incident_id,
       ib.incident_status_id,
       (    SELECT st.NAME
            FROM cs_incident_statuses_tl st
            WHERE st.incident_status_id = ib.incident_status_id
       ) StatusName
  FROM cs_incidents_all_b ib, cs_incidents_all_tl it
  WHERE ib.incident_id = it.incident_id
   AND ib.incident_status_id IN (
    SELECT st.incident_status_id
      FROM cs_incident_statuses_tl st
      WHERE st.NAME IN
             ('Accept Order',
              'Order Accepted',
              'Address Retrieved',
              'Analyze',
              'Entered',
              'Information Retrieved',
              'Retrieve Address',
              'Retrieve Information',
              'Returned'));
于 2013-07-09T14:03:36.530 回答
1

您的查询中未使用 cs_incidents_all_tl,我在此查询中将其删除:

SELECT ib.incident_id,
   ib.incident_status_id,
   st.NAME
FROM cs_incidents_all_b ib
INNER JOIN cs_incident_statuses_tl st ON st.incident_status_id=ib.incident_status_id
WHERE st.NAME IN
         ('Accept Order',
          'Order Accepted',
          'Address Retrieved',
          'Analyze',
          'Entered',
          'Information Retrieved',
          'Retrieve Address',
          'Retrieve Information',
          'Returned'));
于 2013-07-09T14:13:17.057 回答