2011-08-02 7 views
0

두 개의 서로 다른 테이블을 결합하여 필요한 개별 데이터 열을 제공하는 다음 코드가 있습니다. 문제는 다른 테이블의 다른 인스턴스를 계산하는 열이 필요하다는 것입니다. select 문 밑의 포인터 참조를 참조하십시오.SQL Temporary Added Count 결과 열에 대한 결과 열

SELECT 
    //count(of records returned from below query and duplicates of those found in outc table), 
    outage_duration.dgroup, 
    outage_duration.cause, 
    outage_duration.cdts, 
    outage_duration.cust_minutes, 
    outage_duration.evntnum, 
    outage_duration.num_cust, 
    outage_duration.outage_type, 
    outage_duration.substation, 
    outage_duration.feeder, 
    outage_duration.out_minutes 
    FROM outage_duration, 
    aeven 
    WHERE outage_duration.evntnum = aeven.num_1 
    AND aeven.outage_type   = 'T' 
    AND aeven.cdts     >= '20110101060000UT' 
    AND aeven.curent     = 'T' 
    AND aeven.open_and_curent  = 'F' 
    AND aeven.ag_id NOT    IN ('MEMT','MTRRDR','MTRTECH','GRDLT','FSRSR','ELECOPS','AMS','REVSEC') 
    AND outage_duration.out_minutes >= '240' 
    AND outage_duration.curent = 'T' 
    GROUP BY outage_duration.dgroup, outage_duration.cause, outage_duration.cdts, outage_duration.cust_minutes, outage_duration.evntnum, outage_duration.num_cust, outage_duration.outage_type, outage_duration.substation, outage_duration.feeder, outage_duration.out_minutes 
    ORDER BY outage_duration.evntnum 

샘플 AEVEN, Outage_Duration 테이블

num_1 
T344490 
T344410 
T344480 

outage_duration 
T344490 
T344410 

이 위의 검색이하는 일이다 T344490 및 T44410을 반환합니다. 이제 이러한 결과를 통해 다른 테이블의 수를 모두 취하여 해당 테이블에 얼마나 많은 수의 이벤트가 있는지 이벤트 번호 옆에 자체 열로 표시해야합니다.

1. T344410, 5, "other columns that were specified" 
2. T344490, 2, "other columns that were specified" 

가 어떻게이 일을 관리하는 것입니다 :

OUTC (컬럼 1 = 고유 ID, 열 2 = evntnum)는 원하는 결과는 다음 싶습니다

1. 1, T344490 
2. 2, T344490 
3. 3, T344410 
4. 5, T344410 
5. 6, T344410 
6. 7, T344410 
7. 8, T344410 

?

+0

당신은 무엇을해야합니까 GROUP BY ? – gbn

+0

sqldeveloper에서 붙여 넣기 할 때 자동으로 추가됩니다. – SiliVestige

답변

0
SELECT 
    COUNT(*), --this 
    outage_duration.dgroup, 
    outage_duration.cause, 
    outage_duration.cdts, 
    outage_duration.cust_minutes, 
    outage_duration.evntnum, 
    outage_duration.num_cust, 
    outage_duration.outage_type, 
    outage_duration.substation, 
    outage_duration.feeder, 
    outage_duration.out_minutes 
    FROM 
     outage_duration 
     JOIN 
     aeven ON outage_duration.evntnum = aeven.num_1 
     JOIN 
     outc ON outage_duration.evntnum = outc. --insert column here 
    WHERE 
    AND aeven.outage_type   = 'T' 
    AND aeven.cdts     >= '20110101060000UT' 
    AND aeven.curent     = 'T' 
    AND aeven.open_and_curent  = 'F' 
    AND aeven.ag_id NOT    IN   ('MEMT','MTRRDR','MTRTECH','GRDLT','FSRSR','ELECOPS','AMS','REVSEC') 
    AND outage_duration.out_minutes >= '240' 
    AND outage_duration.curent = 'T' 
    GROUP BY outage_duration.dgroup, outage_duration.cause, outage_duration.cdts, outage_duration.cust_minutes, outage_duration.evntnum, outage_duration.num_cust, outage_duration.outage_type, outage_duration.substation, outage_duration.feeder, outage_duration.out_minutes 
    ORDER BY outage_duration.evntnum 

그냥 당신은 이미 BY 그룹이

FROM OUTC에 SELECT 비트에 COUNT (*)를 추가하고, 테이블 단지 슬롯 ITN해야

+0

그게 효과가 .. 내 두뇌가 작동하지 않습니다. – SiliVestige