각 자산 위치의 케이블 수를 얻기 위해 쿼리를 작성하려고합니다. 흐름은 프로젝트 -> 자산 -> 케이블입니다. 하나의 프로젝트는 이러한 자산과 연결된 여러 개의 케이블로 여러 개의 자산을 가질 수 있습니다. 아래는 데이터의 스냅 샷입니다.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"입니다. 사이에 많은 데이터가있는 수천 개의 행이 있기 때문에 이것은 단지 스냅 샷이지만 관련 데이터 만 표시하려고했습니다.
자산 당 케이블 수를 롤업 한 다음 '위치'별로 자산을 그룹화하는 방법을 찾아야합니다. 'location'은 자산의 FIELD_NAME 열에있는 값이며 VALUE 열의 값과 연관되어 있습니다. 예를 들어, 자산 ID 1604의 '위치'는 'OH'입니다.
지금까지 총 케이블 수를 계산할 수있었습니다. 나는 이것들을 어떻게 '자산'의 '위치'로 나누는 지 알아낼 필요가 있습니다.
SELECT
COUNT(DISTINCT RECORD_ID) "Number of Cables"
FROM
PROJECT_TABLE
WHERE
LOWER(FORM_NAME) = 'cable'
위의 쿼리의
현재 결과 :
Location Number of Cables
OH 552
NY 1042
MI 49
CA 1494
어떤 도움을 주시면 더 좋구요 : 나는 결과를 원하는 무엇
Number of Cables
3137
모양을 위해! 감사!
글쎄, 어느 열이 "위치"입니까? – OldProgrammer
위치 란? 그것이 동일한 테이블의 일부인 경우 select 문에 포함하십시오. 다른 테이블과 결합하십시오. 내가 논리가 빠지지 않는 한 똑바로 보인다? – programnub112
나는 사과한다, 나는 그 지위에서 그것을 깨끗하게 할 것이다. '위치'는 저작물의 'FIELD_NAME'열에있는 값입니다. 같은 행의 VALUE 열에 해당 FIELD_NAME '위치'와 연결된 상태가 있습니다. – ad2387