측정 당 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
조회 테이블 정의를 주었지만 기본 조회는 제공하지 않았습니다. – sagi
5 가지 측정 방법이 있지만 실제로는 하나의 측정 값과 5 가지 값 (payor_family, company_name, base_type, base_state, payor_code)이 있습니다. 그 맞습니까? –
죄송합니다. 이제 막 귀하의 의견을 보았습니다. 나는 내 질문을 업데이트했다. – salvationishere