create table #companyvalues
(
companyid varchar(5),
paramkey varchar(30),
paramvalue integer
);
INSERT #companyvalues ([CompanyId], [ParamKey], [ParamValue]) VALUES (N'ABC', N'MinLength', 8)
INSERT #companyvalues ([CompanyId], [ParamKey], [ParamValue]) VALUES (N'ABC', N'MaxLength', 0)
INSERT #companyvalues ([CompanyId], [ParamKey], [ParamValue]) VALUES (N'ABC', N'IsAlphanumeric', 1)
INSERT #companyvalues ([CompanyId], [ParamKey], [ParamValue]) VALUES (N'ABC', N'IsCaseSensitive', 0)
INSERT #companyvalues ([CompanyId], [ParamKey], [ParamValue]) VALUES (N'ABC', N'IsSpecialChars', 0)
INSERT #companyvalues ([CompanyId], [ParamKey], [ParamValue]) VALUES (N'ABC', N'PasswordExpiryDays', 80)
INSERT #companyvalues ([CompanyId], [ParamKey], [ParamValue]) VALUES (N'ABC', N'AlertDays', 10)
INSERT #companyvalues ([CompanyId], [ParamKey], [ParamValue]) VALUES (N'XYZ', N'MinLength', 7)
INSERT #companyvalues ([CompanyId], [ParamKey], [ParamValue]) VALUES (N'XYZ', N'MaxLength', 1)
INSERT #companyvalues ([CompanyId], [ParamKey], [ParamValue]) VALUES (N'XYZ', N'IsAlphanumeric', 3)
INSERT #companyvalues ([CompanyId], [ParamKey], [ParamValue]) VALUES (N'XYZ', N'IsCaseSensitive', 1)
INSERT #companyvalues ([CompanyId], [ParamKey], [ParamValue]) VALUES (N'XYZ', N'IsSpecialChars', 1)
INSERT #companyvalues ([CompanyId], [ParamKey], [ParamValue]) VALUES (N'XYZ', N'PasswordExpiryDays', 90)
INSERT #companyvalues ([CompanyId], [ParamKey], [ParamValue]) VALUES (N'XYZ', N'AlertDays', 5)
;with companynames as
(
select distinct companyid compid
from #companyvalues
) ,
details as
(
select * from #companyvalues
)
select compid, max(MinLength) MinLength, max(MaxLength) MaxLength, max(IsAlphanumeric) IsAlphanumeric,
max(IsCaseSensitive) IsCaseSensitive, max(IsSpecialChars) IsSpecialChars, max(PasswordExpiryDays) PasswordExpiryDays,
max(AlertDays) AlertDays
from
(
select compid
, case when paramkey = 'MinLength' then paramvalue else -1 end MinLength
, case when paramkey = 'MaxLength' then paramvalue else -1 end MaxLength
, case when paramkey = 'IsAlphanumeric' then paramvalue else -1 end IsAlphanumeric
, case when paramkey = 'IsCaseSensitive' then paramvalue else -1 end IsCaseSensitive
, case when paramkey = 'IsSpecialChars' then paramvalue else -1 end IsSpecialChars
, case when paramkey = 'PasswordExpiryDays' then paramvalue else -1 end PasswordExpiryDays
, case when paramkey = 'AlertDays' then paramvalue else -1 end AlertDays
from companynames, details
where compid = companyid
) finalresult
group by compid
order by 1
select * from
(
select companyid,paramkey,paramvalue from #companyvalues
)X
PIVOT
(
MAX(paramvalue)
FOR paramkey IN ([MinLength], [MaxLength], [IsAlphanumeric], [IsCaseSensitive], [IsSpecialChars], [PasswordExpiryDays],[AlertDays])
)Y
No comments:
Post a Comment