2012-07-03 5 views
-1

필터링해야하는 데이터가 포함 된 쿼리 결과 집합이 있지만 필터링 데이터가 다른 테이블에 포함되어 있고 필터링 테이블이 다음과 같은 그룹화를 포함하는 다른 테이블에 연결되어 있습니다. 필터. 더 나아가 그룹화 테이블에는 null 일 수있는 필드가 포함되어 있으므로이 필드를 무시해야합니다. 또한 결과를 그룹 테이블로 그룹화해야합니다. 이 문제에 대한 최선의 접근 방법에 대한 아이디어가 있습니까?다른 쿼리 결과로 쿼리 결과를 필터링하는 중

데이터 테이블을 기동

MYID NAME ADDRESS  AGE 
1  FRED 123 SECOND ST 12 
2  JILL 321 FIRST ST 6 
3  JOE  54 THIRD ST 4 

필터링 TABLES

--Group: table that is keyed via xref to Set table 
GROUP_ID AGEFROM AGETO MYID 
1  3   7  NULL 
2  NULL  NULL  2 


--Set: table that is xrefed to group table 
SET_ID NAME 
5  SET1 
6  SET2 

--Xref: table connecting Set and Group 
SET_ID GROUP_ID 
5   1 
5   2 
6   1 

필터링 기준으로 필터링 테이블을 사용하여 STARTING 데이터 테이블을 조회하여 원하는 출력

SET  GROUP  NAME AGE ID  ADDRESS 
5  1   JILL 6  NULL 321 FIRST ST 
5  1   JOE  4  NULL 54 THIRD ST 
5  2   JILL NULL 2  321 FIRST ST 
6  1   JILL 6  NULL 321 FIRST ST 
6  1   JOE  4  NULL 54 THIRD ST 

내 필요를 다시 말하면 : 그룹 테이블 내용의 필터링 된 첫 번째 테이블의 결과를 출력 한 다음 그룹 테이블의 가능한 null과 데이터 범위를 고려하여 설정 테이블에 의해 그룹화해야합니다. 이해가 되니?

이 결과를 얻는 가장 좋은 방법은 무엇입니까?


입력 해 주셔서 감사합니다. 나는 왜 내 요청이 불완전한 것으로 간주되고 그것에 부정적인 표시가 있는지 혼란 스럽다. 필자는 필터링 할 데이터와 필터링 데이터가 포함 된 다른 세 개의 테이블을 포함하는 테이블 예제를 제공했다. 나중에 예상 출력을 제공했습니다. 나는 데이터베이스를 필터링/검색하고 원하는 출력으로 데이터를 필터링하는 기준으로 필터링 데이터베이스를 사용할 수있는 방향에 관해 도움을 얻으려고합니다. 나는 여기에 훌륭한 SQL 사람들이 나를 도울 수 있다고 생각했다. 나는 응답이 같은

+2

진지하게, 필요한 것을 명확히해야합니다. 출력 결과가 무엇인지 예를 보여줌으로써 원하는 것을 더 잘 이해할 수 있습니다. – Lamak

+0

동의합니다. 예제 결과가있는 예제 필터를 사용하는 것이 매우 유용합니다. 집합에 대한 필터와 그룹에 대한 필터를 설정 한 다음 둘 모두와 일치하는 결과를 표시해야한다고 가정합니다. 나는 그것이 당신이 의미하는 것이라고 생각하지만, 답변을 적어 두는 것만 큼 명확하지 않습니다. – daniloquio

+0

질문을 적용된 필터의 예상 결과로 업데이트했습니다.이게 도움이 되나요? – Edd

답변

0
당신은 어떤 조인을 사용할 필요가

, 뭔가 같은 조금 혼란 스러워요 :

SELECT SetTbl.SetID, GroupTbl.GROUP_ID, ResultsTbl.Name, ResultsTbl.Age, ResultsTbl.Address, GroupTbl.MYID 
FROM ResultsTbl INNER JOIN GroupTbl 
     ON (ResultsTbl.MYID = GroupTbl.MYID OR ResultsTbl.AGE BETWEEN GroupTbl.AGEFROM AND GroupTbl.AGETO) 
    INNER JOIN SetTbl 
     ON GroupTbl.GROUP_ID = SetTbl.GROUP_ID 

귀하의 질문은 그래서이 답이다 확실히 말할 수 없다 명확하지 않다. stackoverflow 사용에 대한 다음 조언을 따르십시오.

  • "도움을 주셔서 감사합니다!" 라인, 그것은 좋지만 여기에 속하지 않습니다.
  • 문제를 해결 한 다음 시도한 것을 설명하고 무엇이 특정 문제인지 설명하는 stackoverflow를 방문해야합니다.

일반적으로 FAQ를 검토하고 지침을 매우 엄격하게 준수해야합니다. 그렇게하면 stackoverflow는 여러분과 다른 사람들에게 가장 유용 할 것입니다. https://stackoverflow.com/faq

+0

답변 해 주셔서 감사합니다. 이 대답은 저를 올바른 방향으로 인도했습니다. 테이블에 외래 키가 없으면 내 혼란이있었습니다. 범위에 조인을 사용하면 도움이되었습니다. 감사! – Edd

관련 문제