これが私が取り組んでいる主なクエリで、ほぼ完成しています。最後に追加する必要があるのは、クライアントの最後の 10 件の電話番号です。
select distinct
max(case when isnull(d.lastname,'')='' then d.name
else d.firstname+' '+(case when isnull(d.middlename,'')='' then '' else d.middlename+' ' end)+d.lastname+
(case when isnull(d.suffix,'')='' then '' else ' '+d.suffix end) end)
,max(isnull(d.street1,p.street1))
,max(isnull(d.street2,''))
,max(d.city)
,max(isnull(d.state,p.state))
,max(isnull(d.zipcode,p.zipcode))
,max(dbo.stripnondigits(isnull(d.ssn,p.ssn)))
,'Add'
,'Primary Secondary Flag'
,max(m.number)
, as 'phone1'
, as 'phone2'
, as 'phone3'
, as 'phone4'
, as 'phone5'
, as 'phone6'
, as 'phone7'
, as 'phone8'
, as 'phone9'
, as 'phone10'
from people p
inner join master m
on p.accountid = m.number
inner join d_table d on p.debtorid=d.debtorid and isnull(d.jobname,'')=''
group by p.pid
phone* 列に、最新の電話番号phone1
から次の最新の電話番号などを入力する必要がありますphone2
。
最後の 10 件の電話番号を取得するクエリは次のとおりです。
select ah.rownumber, ah.number, ah.dateadded, ah.phonenumber
from (SELECT ROW_NUMBER() OVER (partition by number order by dateadded desc) as 'rowNumber', number, dateadded, phonenumber
FROM phones_master) ah
where rownumber <=10
order by ah.number, ah.rownumber
このクエリは、個人の最大 (1 から 10) の電話番号を返します。
ah.number = m.number でグループ化します
これら 2 つのクエリを 1 つに結合する方法がわかりません。1 つの電話番号を返すアカウントもあれば、10 を返すアカウントもあります。これら 2 つのクエリを統合することは可能でしょうか? 最初のものはずっと前に別の個人によって書かれたもので、2 番目のクエリを組み込む必要があるだけです。