2013-01-09 5 views
0

안녕하세요 여러분, 지금 당장이 방법에 접근하는 방법을 엿먹 였고 지금 막 붙어 있습니다. 이 질문을하기를 원할 경우 지역 사회에 유용합니다.트렌드 테이블에 카테고리 추가

나는 아래 첫 번째 테이블과 같은 데이터가있는 경향 테이블을 가지고 있습니다. 아래 두 번째 표와 같은 범주가있는 다른 표가 있습니다. 목표는 누적 기둥 형 차트에 데이터를 표시하는 것입니다. 차트의 각 열은 해당 날짜의 마지막 샘플이되고 각 열의 시리즈 그룹은 회로 카테고리가됩니다.

데이터는 매 10 분에서 샘플링하지만, 예를 들면 위해 난 그냥 매일이 개 샘플을 입력 :

time_stamp | circuit1 | circuit2 | circuit3 

1/5/13 08:00 | 50 | 60 | 30 

1/5/13 04:00 | 48 | 55 | 26 

1/4/13 08:00 | 42 | 52 | 22 

1/4/13 04:00 | 40 | 51 | 20 

등 나는이 비슷한 카테고리 테이블이

:

Circuit_name | circuit_category 

circuit1 | category4 

circuit2 | category2 

circuit3 | category12 

등 아마

내가 생을 할 수있는 간단한 방법을 생각하고 있지 않다 나는이를 작성할 필요가 생각하고

time_stamp | Circuit_name | Circuit_category | Value 

1/5/13 08:00 | Circuit1 | category4 | 50 

1/5/13 08:00 | Circuit2 | category2 | 60 

1/5/13 08:00 | Circuit3 | category12 | 30 

1/4/13 08:00 | Circuit1 | category4 | 42 

1/4/13 08:00 | Circuit2 | category2 | 52 

1/4/13 08:00 | Circuit3 | category12 | 22 

:보고 관점에서,하지만 요구 사항과 같은 일하여 누적 막대 그래프의 일을 얻기 위하여들, 나는 다음과 같은 결과 쿼리를 필요가 있다고 생각 쿼리를 사용하여 max(time_stamp)을 하루 단위로 그룹화하지만 결과를 피벗하여 범주 테이블에 데이터를 조인 할 수 있습니다. 필자는 table1의 실제 열 이름에 table2의 circuit_name을 조인해야하기 때문에 첫 번째 테이블에서 피벗을 사용하여 놀았지만 피벗을 충분히 이해하지 못하기 때문에 막 다른 길을 계속 실행했습니다.

어쨌든 회로 범주를 쿼리에 하드 코딩하는 것이 필요하다면 표 2를 포기할 의향이 있지만 다시 붙어 있습니다. 모든 지침을 부탁드립니다.

데이터는 sql2008r2 서버에 있습니다.

감사합니다.

답변

0

이것은 unpivot 행과 같습니다. SQL Server에는 다음과 같은 기능이 있습니다. 다음 쿼리가 개선되고 최적화 될 수 있다고 생각합니다. Pleaes는 당신이 시도한 후에 논평합니다.

검색어 :

select m.*, t.cat 
from 
(SELECT ts, name, value 
FROM 
(
    SELECT ts, 
    CONVERT(varchar(20), C1) AS c1, 
    CONVERT(varchar(20), C2) AS c2, 
    CONVERT(varchar(20), C3) AS c3 
    FROM t2 
) MyTable 
UNPIVOT 
(Value FOR name IN 
(c1,c2,c3))AS MyUnPivot) m 
left join t1 t 
on t.name = m.name 
; 

결과 :

TS        NAME VALUE CAT 
January, 05 2013 08:00:00+0000 c1  50  category4 
January, 05 2013 08:00:00+0000 c2  60  category2 
January, 05 2013 08:00:00+0000 c3  30  category12 
January, 05 2013 04:00:00+0000 c1  48  category4 
January, 05 2013 04:00:00+0000 c2  55  category2 
January, 05 2013 04:00:00+0000 c3  26  category12 
January, 04 2013 08:00:00+0000 c1  42  category4 
January, 04 2013 08:00:00+0000 c2  52  category2 
January, 04 2013 08:00:00+0000 c3  22  category12 
January, 04 2013 04:00:00+0000 c1  40  category4 
January, 04 2013 04:00:00+0000 c2  51  category2 
January, 04 2013 04:00:00+0000 c3  20  category12 
+0

user1960571 @ pleaes이 쿼리에 사용해 보시기 바랍니다. – bonCodigo

+0

bonCodigo, 답장을 보내 주셔서 감사합니다. 나는 최근에 몇 가지 불을 껐다. 나가 이것을 시험 할 기회를 얻 자마자 나는 확실하게 반응 할 것이다 !! 감사합니다. 마커스 – xMarcus

관련 문제