2017-11-25 12 views
0

내 쿼리에있는 3 개의 테이블 중 하나에서 열을 표시하려고 시도하고 있지만 제대로 작동하는 방법을 파악할 수 없습니다. 아무리 노력해도 효과가없는 것 같습니다. 그것은 쉬운 것처럼 보이지만 어쩌면 나는 정말로 간단한 것을 놓치고있을 것입니다. 여기에 내가 무엇을 가지고 :SQL 쿼리에서 여러 테이블의 열을 표시하는 방법은 무엇입니까?

SELECT hpg.id_number, 
    hpg.id_description, 
    COUNT (hdd.number_of_games) games, 
    SUM (NVL (price, 0)) total, 
    SUM (number_of_food) food 
--I tried adding column here, but nothing seemed to work 
FROM (SELECT number_of_games, price, prints 
     FROM (hopeful_dog_hops) 
     WHERE status = 'Done') hdd, 
    (SELECT SUM (number_of_food) number_of_food, number_of_games 
      FROM hot_digity_dog 
     GROUP BY number_of_games) hdd1, 
    (SELECT id_description, sort_types, id_number 
     FROM (hot_pick_games) 
     WHERE disabled = 'TRUE' AND viewable_type = 'OK') hpg 
WHERE hdd.prints(+) = hpg.id_number 
    AND hdd.number_of_games = hdd1.number_of_games 
GROUP BY hpg.id_description, hpg.id_number, sort_types 
ORDER BY sort_types 

이 거대한 쿼리는 이러한 열을 표시하십시오 hot_digity_dog 테이블에서

TEST 

: 나는 한 번 더 열을 추가 할 필요가

ID_NUMBER ID_DESCRIPTION GAMES TOTAL FOOD 

.

모든 항목의 이름에 대해 크게 신경 쓰지 않아도되지만 쿼리에 다른 열을 표시 할 수있는 방법을 정확하게 파악해야합니다. 첫 번째 SELECT 문에 TEST를 추가하려고 시도했지만 "TEST : invalid identifier."라는 오류 메시지가 나타납니다.

쿼리가 작동합니다 (추가 된 TEST 파트가 없으므로 쿼리에서 오류가 될 수 없음). 새롭게 추가 된 부분이 있어야합니다.

도움을 주시면 감사하겠습니다. 미리 감사드립니다.

SELECT hpg.id_number, 
    hpg.id_description, 
    COUNT (hdd.number_of_games) games, 
    SUM (NVL (price, 0)) total, 
    SUM (number_of_food) food, 
    hdd.TEST 
FROM (SELECT number_of_games, price, prints 
     FROM (hopeful_dog_hops) 
     WHERE status = 'Done') hdd, 
    (SELECT SUM (number_of_food) number_of_food, number_of_games 
      FROM hot_digity_dog 
     GROUP BY number_of_games) hdd1, 
    (SELECT id_description, sort_types, id_number 
     FROM (hot_pick_games) 
     WHERE disabled = 'TRUE' AND viewable_type = 'OK') hpg 
WHERE hdd.prints(+) = hpg.id_number 
    AND hdd.number_of_games = hdd1.number_of_games 
GROUP BY hpg.id_description, hpg.id_number, sort_types 
ORDER BY sort_types 

그리고 여기가 열 머리글이 어떻게 보일지입니다 :

ID_NUMBER ID_DESCRIPTION GAMES TOTAL FOOD TEST 
+0

당신이 추가 열을 추가 쿼리를 제시해주십시오. –

+0

올바른 데이터 샘플 및 예상 된 결과를 추가하십시오. – scaisEdge

+0

hdd 쿼리에서 TEST 열을 선택하지 마십시오. 'number_of_games, price, prints'와 함께 그곳을 선택하십시오. 그리고 그것이 작동 할 것으로 생각됩니다. – Zorkolot

답변

0

문제는에 hot_digity_dog에서 선택되지 않습니다 여기

는 새 열을 가진 쿼리입니다 외부 질의. 해당 테이블을 기반으로하는 AGGREGATE 하위 쿼리 (별칭이 hdd1 인 하위 쿼리)를 선택합니다. 따라서, 어떻게 그 열을 추가하고 싶은지 분명하지 않다. . testnumber_of_games로 완전히 결정 되었습니까? 그럴 경우 집계 하위 쿼리 selectgroup by 절에 test을 추가 한 다음 외부 쿼리에서 선택할 수 있습니다. test 만약

number_of_games에 의해 결정이 number_of_gamestest별로 그룹화로 number_of_food 합계 싶어되지 않는 이유는 무엇입니까? 그렇다면 testselectgroup by에 하위 쿼리에 추가합니다 (단, 결과는 number_of_games으로 그룹화 한 것과 다릅니다). test 만약

number_of_games에 의해 결정되지 않으며, 당신은 합계에 대한 number_of_games에 의해 그룹화 할 수 있지만 어쨌든 test을 보여주고 싶은, 당신은 분석sum()보다는 sum() 집계 사용할 수 있습니다.

게시자가 게시 한 내용이 우리가 귀하를 도울 수있을 정도로 충분하지 않다는 것을 증명하는 작은 예일뿐입니다. 댓글이 아니라 원래 질문을 수정하여 세부 정보를 제공해주십시오.

1

난 당신이 바로 하드 디스크 쿼리 테스트 열을 누락 생각 :

SELECT hpg.id_number, 
    hpg.id_description, 
    COUNT (hdd.number_of_games) games, 
    SUM (NVL (price, 0)) total, 
    SUM (number_of_food) food, 
    hdd.TEST 
FROM (SELECT number_of_games, price, prints, TEST 
     FROM (hopeful_dog_hops) 
     WHERE status = 'Done') hdd, 
    (SELECT SUM (number_of_food) number_of_food, number_of_games 
      FROM hot_digity_dog 
     GROUP BY number_of_games) hdd1, 
    (SELECT id_description, sort_types, id_number 
     FROM (hot_pick_games) 
     WHERE disabled = 'TRUE' AND viewable_type = 'OK') hpg 
WHERE hdd.prints(+) = hpg.id_number 
    AND hdd.number_of_games = hdd1.number_of_games 
GROUP BY hpg.id_description, hpg.id_number, sort_types 
ORDER BY sort_types