내 문제 :
예상치 못한 경우 계속해서 여러 값을 반환합니다. 나는 국가, 군 및 국가에 의해 결정된 특정한 기후를 얻는 것을 시도하고있다.1 개 이상의 값을 반환하는 SQL 하위 쿼리
내가 시도한 것 :
아래 코드를 작성하십시오. 나는 그것이 구체적으로 무엇이 잘못되었는지 확신 할 수 없다. I 은 여러 값을 반환한다는 것을 알고 있습니다. 하지만 왜? 나는 STATE_ABBREVIATION = PROV_TERR_STATE_LOC
을 지정하고 inner join
을 사용하여 다른 CLIMATE_ID를 제외하고 유사한 행을 생성하면 안됩니까?
SELECT
...<code>...
(SELECT locations.CLIMATE_ID
FROM REF_CLIMATE_LOCATION locations, SED_BANK_TST.dbo.STATIONS stations
INNER JOIN REF_STATE states ON STATE_ID = states.STATE_ID
INNER JOIN REF_COUNTY counties ON COUNTY_ID = counties.COUNTY_ID
INNER JOIN REF_COUNTRY countries ON COUNTRY_ID = countries.COUNTRY_ID
WHERE STATE_ABBREVIATION = PROV_TERR_STATE_LOC) AS CLIMATE_ID
...<more code>...
FROM SED_BANK_TST.dbo.STATIONS stations
나는 시간이에 있었다 SO에 다른 질문을 찾고, 그러나 나는이 하위 쿼리가 하나의 값을 반환하는 방법을 알아낼 수 없습니다했습니다.
예제 데이터와 전체 테이블 스키마가있을 수 없습니다. 해당 쿼리가 단일 값을 반환하도록하는 모든 종류의 방법이 있지만 올바른 방법이 무엇인지 알 수있는 방법은 없습니다. – squillman
테스트중인 ID가 REF 테이블에있는 경우 이러한 내부 조인은 결과 집합을 축소하지 않습니다. – Ronald