2012-04-04 4 views
0

고객 트랜잭션 유형이 데이터베이스에 언급되지 않은 경우
모델 연도가 트랜잭션보다 2 년 이하인 경우 유형을 보증으로 업데이트해야합니다.SQL Server 2008의 업데이트 열 - SSIS

나머지 고객 데이터의 60 %는 고객 으로 업데이트되어야하며 고객 데이터의 40 %는 각 딜러에서 Warranty 으로 무작위로 업데이트되어야합니다.

나는이 구조의 모델 년 테이블에 대한 테이블이 있습니다

SlNo VehicleNo ModelYear 
---- --------- --------- 
1  AAAD1234 2012 
2  VVV023333 2008 
3  CRT456  2011 
4  MTER6666 2010 

가이 사용 SSIS를 달성하는 것이 가능을 ??

나는 질의를 시도했다. 해결 도와주세요 그것은

select 
    vehicleNo, Modelyear, 
    case 
     when DATEDIFF(year, ModelYear, GETDATE()) <= 2 then 'Warranty' END, 
    case 
     when COUNT(modelyear) * 100/(select COUNT(*) from VehicleModel) > 2 then '100%' end, 
    case 
     when COUNT(modelyear) * 40/(select COUNT(*) from VehicleModel) > 2 then '40%' end 
from 
    vehiclemodel 
group by 
    vehicleNo, Modelyear 

출력

vehicleNo Modelyear (No column name) (No column name) (No column name) 
--------- --------- ---------------- ---------------- ---------------- 
AAAD1234 2008  NULL    100%    40% 
VVV023333 2010  Warranty   100%    40% 
CRT456  2011  Warranty   100%    40% 
MTER6666 2012  Warranty   100%    40% 
당신이 SSIS와 함께 일을하려고 정확히
+0

예상되는 출력은 무엇입니까? 모델 년 거래 유형보다 작거나 이년 같은 경우 고객의 거래 유형이 데이터베이스 에 언급되지 않은 경우 – Arion

+0

0 아래로 좋아하는 주 [g의 +] 주 [FB] 공유 [TW] \t 투표 보증으로 업데이트해야합니다. 남은 60 %의 고객 데이터는 고객 지불로 업데이트되어야하며 고객 데이터의 40 %는 각 딜러에서 임의로 무상으로 업데이트되어야합니다. 감사합니다 – Gallop

+0

당신이 쿼리를 편집하고 출력 테이블을 보여줄 수 있습니까? – Arion

답변

1

? 어디에서 데이터를 옮기고 어디로 삽입합니까?

이 쿼리를 실행하기 만하면 SSIS가 필요하지 않습니다. SQL에서이 논리를 수행 할 수 있습니다. 이것을 다른 테이블이나 데이터베이스에 삽입해야하는 경우 SQL에서 계산을 수행하고 OleDBSourtce 구성 요소의 원본으로 사용한 다음 대상에 삽입합니다.

더 많은 정보를 제공해 주시면 도와 드릴 수 있습니다.

+0

위에서 언급 한 조건을 확인한 다음 차량을 2 년 전에 구매 한 경우 거래 테이블의 거래 유형 열을 보증으로 업데이트하고 싶습니다. 2 년 이상 남아있는 차량은 계산되며 60 %는 고객 지불로 나머지 40 %는 나머지로 계산됩니다 – Gallop

+0

흠.하지만 SSIS가 필요한 이유를 모르겠다. 그것은 당신이 SQL 쿼리를 사용하여 모든 것을 할 수있는 것 같습니다. 무슨 문제가 정확히 무엇입니까?쿼리가 작동하지 않습니까? 그렇지 않다면 테이블 구조를 게시 할 수 있습니까? – Diego

+0

비즈니스 규칙은 SSIS 패키지의 일부이므로 SSIS 구성 요소를 사용하여 문제를 해결할 수있는 방법이있을 수 있습니다. 쿼리를 사용하여 단 하나의 도움을받을 수 있다면 ... 감사합니다 – Gallop