标题有点儿含糊不清,但本质上我有两张表,一张带有事件数据,例如incident_data
,其中包含事件ID,日期,时间和其他结构化字段。另一个incident_text
包含描述,分辨率和其他自由格式的文本字段。当连接每个记录有两个条目的表时,如何返回Teradata SQL中的不同记录?
我想同时搜索incident_text
中的说明和分辨率字段,并将其与incident_data
加入以获取更多详细信息。他们加入了incidentno
,每个事件可以在incident_text
有两个条目,一个用于描述,另一个用于解决。
说这是我的查询:
SELECT
DISTINCT INCIDENTNO as "Incident Number",
SOME_OTHER_FIELDS ETC..,
TEXTFIELD AS "Text"
TEXTFIELDTYPE AS "Text Type"
FROM INCIDENT_DATA
INNER JOIN INCIDENT_TEXT
ON INCIDENT_DATA.INCIDENTNO=INCIDENT_TEXT.INCIDENTNO
WHERE TEXT LIKE ANY ('%THIS THING%', '%THAT THING%')
,给了我像这样的表,尽管使用DISTINCT
INCIDENT-1 ... FORGOT MY PASSWORD TO THIS THING ... DESCRIPTION
INCIDENT-1 ... PASSWORD RESET TO THAT THING.... RESOLUTION
如果我添加AND TEXTFIELDTYPE = 'DESCRIPTION'
我不再获得重复的,但我也停止搜索决议字段,我想仍然做。
我在寻找的是每个事件的一行,以及事件描述,同时在描述和分辨率字段中搜索。
...'DISTINCT'正常工作 - 它为您提供两行,每行都有不同的'TEXTFIELD'值(这是针对整个结果集而不是每列)。您的模式设计有点可疑 - 解决方案应该放在他们自己的表格中。除此之外,你想看到什么样的结果 - 你是否也想要显示分辨率?至少,无论如何,您都需要两次加入“Incident_Text”。 – 2013-03-18 15:41:03
我希望通过描述查看每个事件,同时搜索描述和分辨率字段,每个唯一事件编号一行。我绝对同意架构问题... – pedram 2013-03-18 15:44:01