好吧,所以我試圖用最後2列在這裏:每張票有一個與它關聯的日記,可以有多個條目。我試圖根據與條目相關的時間戳獲取最新的條目,並創建一個查詢,顯示自上次條目以來經過了多長時間。最後一列也顯示了經過時間,但對於特定類型的日記帳分錄。 此查詢中的條目需要被限制爲擁有與2個人中的1個相對應的所有者ID的故障單。在這個例子中,這些人是'aaaa cccc'和'bbbb dddd'。所以,當我運行查詢時,它只是掛起。另外,當我刪除最後2列時,它仍然掛起,所以我認爲它與where語句有關。我在這裏虧本,但由於我對sql很陌生,可能有些簡單的東西我錯過了。oracle sql查詢掛起
SELECT t.ticket_id,
cct.issue,
t.status,
t.priority,
a.account_name,
o.identifier,
To_char(t.created, 'MM/dd/yyyy hh:mm:ss') AS "CREATED",
To_char(SYSDATE - (SELECT Max(ti.timestamp)
FROM ticket_journal ti
WHERE ti.ticket_id = t.ticket_id), 'hh:mm:ss') AS "LAST_ENTRY",
To_char(SYSDATE - (SELECT Max(ti.timestamp)
FROM ticket_journal ti
WHERE ti.ticket_id = t.ticket_id
AND (ti.journal_type LIKE 'External'
OR ti.journal_type LIKE 'External/WIP'
)), 'hh:mm:ss') AS "LAST_EXT_ENTRY"
FROM tickets t,
customer_care_tickets cct,
accounts a,
orders o
WHERE t.owner IN (SELECT cont.contact_id
FROM contacts cont
WHERE (cont.first_name LIKE 'aaaa'
OR cont.first_name LIKE 'bbbb')
AND (cont.last_name LIKE 'cccc'
OR cont.last_name LIKE 'dddd'))
我沒有看到任何連接條件。你如何將這4張桌子連接在一起? –
看來你正在做4個表格之間的笛卡兒連接。這可能會在你的'TEMP'表空間最終死亡之前將其吹掉。我假設有一些鍵可以讓你把各種表中的數據聯繫在一起。你需要在'WHERE'子句中指定那些連接標準(或者轉移到使用顯式連接語法) –
鑑於LIKE比較中沒有通配符,你可以使用'='而不是LIKE。或者添加通配符,如'cont.first_name LIKE'%aaaa%'',如果您想查找FIRST_NAME包含字符'aaaa'的行。文檔[此處](http://docs.oracle.com/html/A85397_01/operator.htm)。分享並享受。 –