2012-12-01 4 views
0

다음 스 니펫은 여러 테이블에 대한 조인입니다. 호주의 모든 사람들이 주문한 모든 주문 번호, 고객 이름, 제품 이름, 가격 및 수량을 표시해야합니다. 나는 테이블 표제를 얻고 있지만 행은 없다. 이 문제가 있습니까?왜 데이터를 가져 오지 않습니까?

내가 코드를 변경 한
SELECT 
     "order".orderno AS ord, 
     customer.cname, 
     product.prodname, 
     customer.country_code, 
     orderdetl.price, 
     orderdetl.qty, 
     country.country_code 
    FROM 
     prema01.country, 
     prema01.customer, 
     prema01."order", 
     prema01.orderdetl, 
     prema01.product 
    WHERE 
     customer.country_code = 'AUS' 

는이 테이블에 데이터가 그것은 여전히 ​​빈 온다 확인했습니다. 나는 완전히 뒤죽박죽이다.

SELECT O.ORDERNO, C.CNAME, PN.PRODNAME, ODT.PRICE, ODT.QTY, ODT.QTY * PN.PRODSELL AS TOTAL 
FROM prema01.ORDER O, prema01.CUSTOMER C, prema01.ORDERDETL ODT, prema01.PRODUCT PN, prema01.COUNTRY CT 
WHERE CT.COUNTRY_NAME = 'Australia' 
AND C.COUNTRY_CODE = CT.COUNTRY_CODE 
AND C.CUSTNO = O.CUSTNO 
AND O.ORDERNO = ODT.ORDERNO 
AND PN.PRODNO = ODT.PRODNO AND O.ORDERNO <= 60 
ORDER BY TOTAL DESC; 

변경 사항을 잊어 버렸습니다. 테이블에 데이터가 있고 물리적으로 확인했습니다.

+0

어떤 SQL입니까? 그것은 아주 틀린 것처럼 보입니다. 프렘이 테이블인가요? 어떤 테이블을 가지고 있고 어떤 컬럼을 가지고 있는지 결정할 수 있습니다. –

+0

어떤 RDBMS를 사용하고 있습니까? JOIN 절이 있어야합니다. –

+0

자사의 DB2는 내 학교에 iNagivators 연결이 휴지통이기 때문에 Postgre를 사용하여 코드를 테스트하고 있습니다. –

답변

1

처음에는 몇 가지 조인 조건이 필요합니다.

Select 
    r.country_code, 
    c.cname 
From 
    prema01.country r 
    inner join 
    prema01.customer c 
    on r.country_code = c.country_code 

비슷한 방식으로 다른 테이블과의 관계를 구축해야합니다.

또한 테이블에 데이터가 있는지 확인하십시오. 합니까

Select 
    Count(*) 
From 
    prema01.country 

반환 항목은 무엇입니까? 어때요

Select 
    Count(*) 
From 
    prema01.customer 
Where 
    country_code = 'AUS' 

?

+0

예, 반환 값은 8입니다. –

+0

첫 번째 카운트 쿼리 또는 두 번째 카운트? – Laurence

+0

첫 번째 쿼리의 경우 2, 두 번째 쿼리의 경우 8. –

0

내 호주 테이블에 '오스트레일리아'가있는 동안 고정되었지만 '오스트레일리아'를 찾고있었습니다. 도움을 주셔서 감사합니다

관련 문제