標題有點兒含糊不清,但本質上我有兩張表,一張帶有事件數據,例如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