테이블 2개를 Joint 시킵니다..
한 테이블엔 계획이 있고 한테이블엔 가져오고자 하는 모델리스트가 있습니다.
Model List 테이블
Model | 상태 |
AA | 가능 |
BB | 가능 |
CC | 불가능 |
BB | 가능 |
한모델엔 각 모델별로 계획이 있습니다.
DailyPlan 테이블
KOP | Start Time | Input(Detail) |
AA,CC | 2014-11-29 | 100 |
BB | 2014-11-30 | 200 |
DD | 2014-12-01 | 300 |
CC | 2014-12-02 | 400 |
BB | 2014-12-03 | 500 |
DD | 2014-12-04 | 600 |
제가 만들려는 Data는 Model 상태 위에 제일빠른 Start Time과 Input(Detail)값을 가져오는것인데..
KOP항목에 모델명이 여러개 있는것이 있습니다.
그래서 Like항목처럼 포함했을때로 조건을 주고 싶은데.. On에서는 = 이거밖에 안되는듯 해요...
strSQL = "SELECT Target.[Model], First(Daily.[Start Time]) AS [계획], First(Daily.[Input(Detail)]) AS [수량] " & _
"FROM [ModelList] AS Target " & _
"LEFT JOIN (SELECT [KOP], [Start Time], [Input(Detail)] FROM [DailyPlan] ) AS Daily " & _
"ON Target.[Model] Like '*' & Daily.[KOP] & '*' " & _
"GROUP BY Target.[Model] "
결과값이 전혀 연관성 없게 나옵니다.... 어떻게 해야 할까요?
Comment 4
-
Hisory
2014.12.01 19:56
declare @tb1 table(a varchar(100), b varchar(100))declare @tb2 table(aa varchar(100), bb varchar(100))insert @tb1(a,b)values('a2','b1'),('a1','b2'),('a3','b3')insert @tb2(aa,bb)values('aa2a','b1'),('aa2a','b11'),('a33','b3')select * from @tb1 as t1left outer join @tb2 as t2 ont2.aa like '%' + t1.a + '%'이런걸 말씀하시는건지... -
아렌티
2014.12.05 06:55
'%' + 값 +'%' 햇더니 그냥 = 와 같은값이 나와서 제가 잘못 쓴줄알았는데..
제가 사용하는 환경이 지원을 안하나봐요 ㅜㅜ
-
초짜해커
2014.12.02 17:37
보통 조인할때 ON 절에는 "=" 연산자를 사용합니다만
문법만 맞으면 어떤 식이라도 쓸 수 있습니다.
예를 들자면
TBLA A INNER JOIN TBLB B ON A.KEY != B.KEY
TBLA A INNER JOIN TBLB B ON A.KEY > B.KEY
심지어는
TBLA A INNER JOIN TBLB B ON DBO.FUNC_A(A.KEY) = DBO.FUNC_B(B.KEY) 도 되죠.
-
아렌티
2014.12.05 06:54
Like를 사용할수 있다는 이야기 맞나요?ㅎ
좀 더 공부해서 무엇이 잘못되었는지 확인해보겠습니다 ^^