2016-06-07 3 views
1

측정 당 charge_log_date의 고유 카운트를 계산하는 SSMS 2012에서 쿼리를 작성하려면 TSQL을 사용해야합니다. 이 charge_log_date 필드는 smalldatetime (시간은 "00:00:00"으로 저장 됨)이므로 일 수만 중요합니다.5 개 측정에서 고유 카운트 수행

이 데이터 집합은 계수기 당 총 5 개의 슬라이서가있는 PowerPivot 테이블을 채우는 데 사용됩니다. 이러한 조치는 제목됩니다

payor_family, company_name, base_type, base_state, payor_code 

사용자가 이러한 슬라이서의 클릭

이 charge_log_day_count는 일의 뚜렷한 # 계산해야/측정 클릭했습니다. 따라서 하나의 payor_family와 다른 슬라이서 만 클릭하면 해당 데이터 집합에 해당 payor_family에 대한 개수가 포함되어야합니다. 이것은 단순한 경우입니다. 그러나 두 개 이상의 슬라이서를 클릭하면 데이터 세트에 선택한 각 슬라이서 측정 값에 대한 개수가 포함되어야합니다.

내가 지금까지 행한 측정 값은 NULL 값이 다른 값을 나타내는 5 개의 측정 값 각각에 대한 개수를 저장하는 찾아보기 테이블을 만드는 것이 었습니다.

는 ASK :
어떻게에만 해당 수를 포함하는 메인 데이터 세트에이 표를 가입 할 수 있습니까? 다음은 데이터가있는 샘플 표입니다.

create table #charge_log_dates 
(
payor_family varchar(5), 
company_name varchar(5), 
base_type varchar(5), 
base_state varchar(5), 
payor_code varchar(5), 
ct int 
) 

insert #charge_log_dates values('PF1',NULL,NULL,NULL,NULL,5) 
insert #charge_log_dates values('PF2',NULL,NULL,NULL,NULL,10) 
insert #charge_log_dates values('PF3',NULL,NULL,NULL,NULL,25) 
insert #charge_log_dates values(NULL,'CN1',NULL,NULL,NULL,3) 
insert #charge_log_dates values(NULL,'CN2',NULL,NULL,NULL,8) 
insert #charge_log_dates values(NULL,'CN3',NULL,NULL,NULL,18) 
insert #charge_log_dates values(NULL,NULL,'BT1',NULL,NULL,5) 
insert #charge_log_dates values(NULL,NULL,'BT2',NULL,NULL,1) 
insert #charge_log_dates values(NULL,NULL,'BT3',NULL,NULL,6) 
insert #charge_log_dates values(NULL,NULL,NULL,'BS1',NULL,9) 
insert #charge_log_dates values(NULL,NULL,NULL,'BS2',NULL,10) 
insert #charge_log_dates values(NULL,NULL,NULL,'BS3',NULL,30) 
insert #charge_log_dates values(NULL,NULL,NULL,NULL,'PC1',15) 
insert #charge_log_dates values(NULL,NULL,NULL,NULL,'PC2',15) 
insert #charge_log_dates values(NULL,NULL,NULL,NULL,'PC3',45) 

SELECT * from #charge_log_dates 

drop table #charge_log_dates 

여기가 내 주 테이블입니다. 단 하나의 슬라이서 만 선택하거나 매우 복잡하면이 작업은 매우 간단합니다. (나는 이전에이 테이블이 payor_family, company_name, base_type, base_state 및 payor_code에 의해 그룹화되어 중복이 없어야 할 때 중복 값이있는 행이 있음을 발견했습니다.

create table #main (
payor_family varchar(5), 
company_name varchar(5), 
base_type varchar(5), 
base_state varchar(5), 
payor_code varchar(5), 
measure1 int, 
measure2 int, 
measure3 int 
) 

insert #main values('PF1',NULL,NULL,NULL,NULL,45,14,18) 
insert #main values('PF2',NULL,NULL,NULL,NULL,52,34,13) 
insert #main values('PF3',NULL,NULL,NULL,NULL,10,14,12) 
select * from #main 
truncate table #main 

insert #main values(NULL,'CN1',NULL,NULL,NULL,9,9,18) 
insert #main values(NULL,'CN2',NULL,NULL,NULL,13,9,18) 
select * from #main 
truncate table #main 

insert #main values('PF1','CN2','BT3','BS3','PC1',41,14,18) 
insert #main values('PF2','CN1','BT1','BS3','PC1',42,15,18) 
insert #main values('PF3','CN1','BT3','BS3','PC1',43,16,18) 
select * from #main 
drop table #main 

출력물이 필요합니다. 최고 수준에서 가장 세분화 된 계층 구조는 payor_family, company_name, base_type, base_state 및 payor_code입니다. 즉, payor_family 만 선택하면 일치하는 payor_family가 들어있는 행의 수만 표시됩니다. 그러나 payor_code는 다른 슬라이서에 대해 선택하는 것과 상관없이 가장 세분화되어 있기 때문에 일치하는 payor_code가 포함 된 행에서 계산해야합니다.

payor_family company_name base_type base_state payor_code measure1 measure2 measure3 ct 
PF1 NULL NULL NULL NULL 45 14 18 5 
PF2 NULL NULL NULL NULL 52 34 13 10 
PF3 NULL NULL NULL NULL 10 14 14 25 
NULL CN1 NULL NULL NULL 9 9 18 3 
NULL CN2 NULL NULL NULL 13 9 18 8 
PF1 CN2 BT3 BS3 PC1 41 14 18 15 
PF2 CN2 BT1 BS3 PC1 42 15 18 15 
PF3 CN2 BT3 BS3 PC1 43 16 18 15 
+0

조회 테이블 정의를 주었지만 기본 조회는 제공하지 않았습니다. – sagi

+0

5 가지 측정 방법이 있지만 실제로는 하나의 측정 값과 5 가지 값 (payor_family, company_name, base_type, base_state, payor_code)이 있습니다. 그 맞습니까? –

+0

죄송합니다. 이제 막 귀하의 의견을 보았습니다. 나는 내 질문을 업데이트했다. – salvationishere

답변

0

대신 PowerPivot에서이 문제를 해결했습니다. 도와 주셔서 감사합니다.