我試圖創建一個查詢來獲取每個資產位置的電纜數量。流程是Project-> Asset-> Cable。一個項目可以擁有多個資產,並將多條電纜與這些資產相關聯。以下是數據的快照。基於條件的Oracle SQL計數
RECORD_ID PARENT_RECORD_ID FORM_NAME PARENT_FORM FIELD_NAME VALUE
1604 1603 asset project serial b345s
1604 1603 asset project location OH
1605 1604 cable asset zone green
1606 1603 asset project location NY
1607 1606 cable asset port 2
正如您在上面所看到的,在電纜級別,PARENT_RECORD_ID是資產的「RECORD_ID」。這只是一個快照,因爲有成千上萬行,其間有大量數據,但我試圖只顯示相關數據。
我需要找出一種方法來捲起每個資產的電纜通過「位置」資產的數量,然後組。 '位置'是該資產的FIELD_NAME列中的值,其值與VALUE列中的值相關聯。例如,以上,資產ID 1604,'位置'是'OH'。
到目前爲止,我已經能夠得到電纜總人數的計數。我只需要弄清楚如何通過他們的「資產」的「位置」來解決這些問題。
SELECT
COUNT(DISTINCT RECORD_ID) "Number of Cables"
FROM
PROJECT_TABLE
WHERE
LOWER(FORM_NAME) = 'cable'
當前上述查詢結果:
Number of Cables
3137
我想什麼結果的樣子:
Location Number of Cables
OH 552
NY 1042
MI 49
CA 1494
任何幫助,不勝感激!謝謝!
那麼,哪一列是「位置?」 – OldProgrammer 2014-08-27 20:59:04
位置列?如果這是同一個表的一部分,請將其包含在您的select語句中。否則加入另一張桌子。似乎直截了當,除非我缺少邏輯? – programnub112 2014-08-27 20:59:47
我很抱歉,我會在帖子中澄清。 'location'是資產的'FIELD_NAME'列中的值。同一行上的VALUE列的狀態與該FIELD_NAME的「位置」相關聯。 – ad2387 2014-08-27 21:04:21