Advertisement
takz

BDM_7

Feb 6th, 2025
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 68.69 KB | None | 0 0
  1. USE [FP&A]
  2. GO
  3. /****** Object:  StoredProcedure [dbo].[CPACombinedReportData]    Script Date: 2/6/2025 11:06:52 AM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8.  
  9.  
  10.  
  11. ALTER PROC [dbo].[CPACombinedReportData] AS
  12. BEGIN
  13.  
  14. set transaction isolation level read uncommitted
  15. /*
  16. drop table if exists #Round0;
  17. drop table if exists #Round1;
  18. drop table if exists #Round2;
  19. drop table if exists #Round3;
  20. drop table if exists #Round4;
  21. drop table if exists #Round5;
  22. drop table if exists #Round6;
  23. drop table if exists #Round7;
  24. drop table if exists #Round8;
  25. drop table if exists #Round9;
  26. drop table if exists #Round10;
  27. drop table if exists #Round11;
  28. drop table if exists #Round12;
  29. drop table if exists #Round13;
  30. drop table if exists #Round14;
  31. drop table if exists #Round15;
  32. drop table if exists #Round16;
  33. drop table if exists #Round17;
  34. drop table if exists #Round18;
  35. drop table if exists #Round19;
  36.  
  37.  
  38. SELECT CM.CPA_NAME,CF.CPAFirmName,CF.AccountID,CPAFirmIndex
  39. INTO #Round0
  40. FROM
  41. (
  42. SELECT CPA_NAME,MatterNUmber
  43. FROM
  44. [fp&a]..CPAMatch CM
  45. WHERE
  46. ARMIndex IN (
  47. SELECT ARMIndex
  48. FROM
  49. [fp&a]..CPAMatch
  50. GROUP BY ARMIndex
  51. HAVING COUNT(ARMIndex) = 1 AND SUM(COALESCE(TRY_CAST(AMOUNTDUETOCPA as numeric),0))>0)
  52. GROUP BY  CPA_NAME,MatterNUmber
  53. ) CM
  54. JOIN
  55. TE_3E_PROD_Clone..Matter M on M.NUmber COLLATE SQL_Latin1_General_CP1_CI_AS = CM.MatterNUmber
  56. JOIN
  57. (SELECT Matterlkup,MAX(CPAFirm) CPAFirm
  58. FROM
  59. TE_3E_PROD_Clone..AG_MattCPAFirm
  60. GROUP BY MatterLkup
  61. HAVING COUNT(DISTINCT CPAFirm)=1
  62. )
  63. MCF on MCF.MatterLkup = M.MattINdex
  64. JOIN
  65. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.CPAFirmIndex = MCF.CPAFirm
  66. GROUP BY
  67. CM.CPA_NAME,CPAFirmName,CF.AccountID,CPAFirmIndex
  68.  
  69. SELECT CM.CPA_NAME,CF.CPAFirmName,CF.AccountID,CPAFirmIndex
  70. INTO #Round1
  71. FROM
  72. (
  73. SELECT CPA_NAME,MatterNUmber
  74. FROM
  75. [fp&a]..CPAMatch CM
  76. WHERE
  77. ARMIndex IN (
  78. SELECT ARMIndex
  79. FROM
  80. [fp&a]..CPAMatch
  81. WHERE
  82. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round0)
  83. GROUP BY ARMIndex
  84. HAVING COUNT(ARMIndex) = 1)
  85. AND
  86. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round0)
  87. GROUP BY  CPA_NAME,MatterNUmber
  88. ) CM
  89. JOIN
  90. TE_3E_PROD_Clone..Matter M on M.NUmber COLLATE SQL_Latin1_General_CP1_CI_AS = CM.MatterNUmber
  91. JOIN
  92. (SELECT Matterlkup,MAX(CPAFirm) CPAFirm
  93. FROM
  94. TE_3E_PROD_Clone..AG_MattCPAFirm
  95. GROUP BY MatterLkup
  96. HAVING COUNT(DISTINCT CPAFirm)=1
  97. )
  98. MCF on MCF.MatterLkup = M.MattINdex
  99. JOIN
  100. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.CPAFirmIndex = MCF.CPAFirm
  101. GROUP BY
  102. CM.CPA_NAME,CPAFirmName,CF.AccountID,CPAFirmIndex
  103.  
  104.  
  105.  
  106. SELECT CM.CPA_NAME,CF.CPAFirmName,CF.AccountID,CPAFirmIndex
  107. INTO #Round2
  108. FROM
  109. (
  110. SELECT CPA_NAME,MatterNUmber
  111. FROM
  112. [fp&a]..CPAMatch CM
  113. WHERE
  114. ARMIndex IN (
  115. SELECT ARMIndex
  116. FROM
  117. [fp&a]..CPAMatch
  118. WHERE
  119. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round1)
  120. GROUP BY ARMIndex
  121. HAVING COUNT(ARMIndex) = 1)
  122. AND
  123. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round1)
  124. GROUP BY  CPA_NAME,MatterNUmber
  125. ) CM
  126. JOIN
  127. TE_3E_PROD_Clone..Matter M on M.NUmber COLLATE SQL_Latin1_General_CP1_CI_AS = CM.MatterNUmber
  128. JOIN
  129. (SELECT Matterlkup,MAX(CPAFirm) CPAFirm
  130. FROM
  131. TE_3E_PROD_Clone..AG_MattCPAFirm
  132. WHERE
  133. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round1)
  134. GROUP BY MatterLkup
  135. HAVING COUNT(DISTINCT CPAFirm)=1
  136. )
  137. MCF on MCF.MatterLkup = M.MattINdex
  138. JOIN
  139. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.CPAFirmIndex = MCF.CPAFirm
  140. GROUP BY
  141. CM.CPA_NAME,CPAFirmName,CF.AccountID,CPAFirmIndex
  142.  
  143.  
  144. SELECT CM.CPA_NAME,CF.CPAFirmName,CF.AccountID,CPAFirmIndex
  145. INTO #Round3
  146. FROM
  147. (
  148. SELECT CPA_NAME,MatterNUmber
  149. FROM
  150. [fp&a]..CPAMatch CM
  151. WHERE
  152. ARMIndex IN (
  153. SELECT ARMIndex
  154. FROM
  155. [fp&a]..CPAMatch
  156. WHERE
  157. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round2) and
  158. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round1)
  159. GROUP BY ARMIndex
  160. HAVING COUNT(ARMIndex) = 1)
  161. AND
  162. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round2) and
  163. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round1)
  164. GROUP BY  CPA_NAME,MatterNUmber
  165. ) CM
  166. JOIN
  167. TE_3E_PROD_Clone..Matter M on M.NUmber COLLATE SQL_Latin1_General_CP1_CI_AS = CM.MatterNUmber
  168. JOIN
  169. (SELECT Matterlkup,MAX(CPAFirm) CPAFirm
  170. FROM
  171. TE_3E_PROD_Clone..AG_MattCPAFirm
  172. WHERE
  173. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round2) AND
  174. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round1)
  175. GROUP BY MatterLkup
  176. HAVING COUNT(DISTINCT CPAFirm)=1
  177. )
  178. MCF on MCF.MatterLkup = M.MattINdex
  179. JOIN
  180. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.CPAFirmIndex = MCF.CPAFirm
  181. GROUP BY
  182. CM.CPA_NAME,CPAFirmName,CF.AccountID,CPAFirmIndex
  183.  
  184.  
  185. SELECT CM.CPA_NAME,CF.CPAFirmName,CF.AccountID,CPAFirmIndex
  186. INTO #Round4
  187. FROM
  188. (
  189. SELECT CPA_NAME,[CLIENT ID]
  190. FROM
  191. [fp&a]..CPAMatch CM
  192. WHERE
  193. ARMIndex IN (
  194. SELECT ARMIndex
  195. FROM
  196. [fp&a]..CPAMatch
  197. WHERE
  198. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round3) and
  199. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round2) and
  200. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round1)
  201. GROUP BY ARMIndex
  202. HAVING COUNT(ARMIndex) = 1)
  203. AND
  204. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round3) and
  205. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round2) and
  206. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round1)
  207. GROUP BY  CPA_NAME,[CLIENT ID]
  208. ) CM
  209. JOIN
  210. TE_3E_PROD_Clone..Matter M on M.Client = CM.[CLIENT ID]
  211. JOIN
  212. (SELECT Matterlkup,MAX(CPAFirm) CPAFirm
  213. FROM
  214. TE_3E_PROD_Clone..AG_MattCPAFirm
  215. WHERE
  216. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round3) AND
  217. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round2) AND
  218. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round1)
  219. GROUP BY MatterLkup
  220. HAVING COUNT(DISTINCT CPAFirm)=1
  221. )
  222. MCF on MCF.MatterLkup = M.MattINdex
  223. JOIN
  224. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.CPAFirmIndex = MCF.CPAFirm
  225. GROUP BY
  226. CM.CPA_NAME,CPAFirmName,CF.AccountID,CPAFirmIndex
  227.  
  228.  
  229.  
  230. SELECT CM.CPA_NAME,CF.CPAFirmName,CF.AccountID,CPAFirmIndex
  231. INTO #Round5
  232. --SELECT *
  233. FROM
  234. (
  235. SELECT CPA_NAME,ARMIndex
  236. FROM
  237. [fp&a]..CPAMatch CM
  238. WHERE
  239. ARMIndex IN (
  240. SELECT ARMIndex
  241. FROM
  242. [fp&a]..CPAMatch
  243. WHERE
  244. CPA_NAME != 'Null' AND
  245. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round4) and
  246. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round3) and
  247. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round2) and
  248. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round1)
  249. GROUP BY ARMIndex
  250. HAVING COUNT(ARMIndex) = 1)
  251. AND
  252. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round4) and
  253. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round3) and
  254. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round2) and
  255. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round1)
  256. GROUP BY  CPA_NAME,ARMIndex
  257. ) CM
  258. JOIN
  259. TE_3E_PROD_Clone..ARMaster AM on AM.ARMIndex = CM.ARMIndex
  260. JOIN
  261. TE_3E_PROD_Clone..InvMaster IM on IM.InvIndex = AM.InvMaster
  262. JOIN
  263. TE_3E_PROD_Clone..Matter M on M.Mattindex = IM.LeadMatter
  264. JOIN
  265. (SELECT Matterlkup,MAX(CPAFirm) CPAFirm
  266. FROM
  267. TE_3E_PROD_Clone..AG_MattCPAFirm
  268. WHERE
  269. FeeAllocation is not null and
  270. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round4) AND
  271. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round3) AND
  272. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round2) AND
  273. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round1)
  274. GROUP BY MatterLkup
  275. HAVING COUNT(DISTINCT CPAFirm)=1
  276. )
  277. MCF on MCF.MatterLkup = M.MattINdex
  278. JOIN
  279. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.CPAFirmIndex = MCF.CPAFirm
  280. --WHERE CM.ARMIndex = 364262
  281. GROUP BY
  282. CM.CPA_NAME,CPAFirmName,CF.AccountID,CPAFirmIndex
  283.  
  284.  
  285.  
  286. SELECT CM.CPA_NAME,CF.CPAFirmName,CF.AccountID,CPAFirmIndex
  287. INTO #Round6
  288. --SELECT *
  289. FROM
  290. (
  291. SELECT CPA_NAME,ARMIndex
  292. FROM
  293. [fp&a]..CPAMatch CM
  294. WHERE
  295. ARMIndex IN (
  296. SELECT ARMIndex
  297. FROM
  298. [fp&a]..CPAMatch
  299. WHERE
  300. CPA_NAME != 'Null' AND
  301. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round5) and
  302. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round4) and
  303. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round3) and
  304. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round2) and
  305. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round1)
  306. GROUP BY ARMIndex
  307. HAVING COUNT(ARMIndex) = 1)
  308. AND
  309. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round5) and
  310. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round4) and
  311. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round3) and
  312. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round2) and
  313. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round1)
  314. GROUP BY  CPA_NAME,ARMIndex
  315. ) CM
  316. JOIN
  317. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS = CM.CPA_NAME
  318. --JOIN
  319. --TE_3E_PROD_Clone..ARMaster AM on AM.ARMIndex = CM.ARMIndex
  320. --JOIN
  321. --TE_3E_PROD_Clone..InvMaster IM on IM.InvIndex = AM.InvMaster
  322. --JOIN
  323. --TE_3E_PROD_Clone..Matter M on M.Mattindex = IM.LeadMatter
  324. JOIN
  325. (SELECT Matterlkup,MAX(CPAFirm) CPAFirm
  326. FROM
  327. TE_3E_PROD_Clone..AG_MattCPAFirm
  328. WHERE
  329. --FeeAllocation is not null and
  330. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round5) AND
  331. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round4) AND
  332. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round3) AND
  333. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round2) AND
  334. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round1)
  335. GROUP BY MatterLkup
  336. HAVING COUNT(DISTINCT CPAFirm)=1
  337. )
  338. MCF on CF.CPAFirmIndex = MCF.CPAFirm
  339.  
  340.  
  341. GROUP BY
  342. CM.CPA_NAME,CPAFirmName,CF.AccountID,CPAFirmIndex
  343.  
  344.  
  345.  
  346.  
  347. SELECT CM.CPA_NAME,CF.CPAFirmName,CF.AccountID,CPAFirmIndex
  348. INTO #Round7
  349. --SELECT *
  350. FROM
  351. (
  352. SELECT CPA_NAME,ARMIndex
  353. FROM
  354. [fp&a]..CPAMatch CM
  355. WHERE
  356. ARMIndex IN (
  357. SELECT ARMIndex
  358. FROM
  359. [fp&a]..CPAMatch
  360. WHERE
  361. CPA_NAME != 'Null' AND
  362. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round6) and
  363. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round5) and
  364. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round4) and
  365. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round3) and
  366. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round2) and
  367. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round1)
  368. GROUP BY ARMIndex
  369. HAVING COUNT(ARMIndex) = 1)
  370. AND
  371. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round6) and
  372. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round5) and
  373. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round4) and
  374. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round3) and
  375. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round2) and
  376. CPA_NAME NOT IN (SELECT CPA_NAME FROM #Round1)
  377. GROUP BY  CPA_NAME,ARMIndex
  378. ) CM
  379. JOIN
  380. TE_3E_PROD_Clone..ARMaster AM on AM.ARMIndex = CM.ARMIndex
  381. JOIN
  382. TE_3E_PROD_Clone..InvMaster IM on IM.InvIndex = AM.InvMaster
  383. JOIN
  384. TE_3E_PROD_Clone..Matter M on M.Mattindex = IM.LeadMatter
  385. JOIN
  386. (SELECT Client,MAX(CPAFirm) CPAFirm
  387. FROM
  388. TE_3E_PROD_Clone..AG_MattCPAFirm mcf
  389. JOIN
  390. TE_3E_PROD_Clone..Matter m on m.MattIndex = mcf.MatterLkup
  391. WHERE
  392. --FeeAllocation is not null and
  393. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round6) AND
  394. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round5) AND
  395. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round4) AND
  396. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round3) AND
  397. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round2) AND
  398. CPAFirm NOT IN (SELECT CPAFirmIndex FROM #Round1)
  399. GROUP BY Client
  400. HAVING COUNT(DISTINCT CPAFirm)=1
  401. )
  402. MCF on MCF.Client = m.client
  403. JOIN
  404. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.CPAFirmIndex = MCF.CPAFirm
  405.  
  406. GROUP BY
  407. CM.CPA_NAME,CPAFirmName,CF.AccountID,CPAFirmIndex
  408.  
  409.  
  410.  
  411. SELECT CPA_NAME,CPAFirmName,a.id AccountID, CPAFirmIndex
  412. into #Round8
  413. FROM
  414. [fp&a]..CPAMatch cm
  415. JOIN
  416. SalesforceClone..account a on a.name = cm.CPA_NAME
  417. LEFT JOIN
  418. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS = a.id
  419. WHERE
  420. CPA_NAME NOT IN (
  421. SELECT CPA_NAME
  422. FROM
  423. #Round1
  424. UNION ALL
  425. SELECT CPA_NAME
  426. FROM
  427. #Round2
  428. UNION ALL
  429. SELECT CPA_NAME
  430. FROM
  431. #Round3
  432. UNION ALL
  433. SELECT CPA_NAME
  434. FROM
  435. #Round4
  436. UNION ALL
  437. SELECT CPA_NAME
  438. FROM
  439. #Round5
  440. UNION ALL
  441. SELECT CPA_NAME
  442. FROM
  443. #Round6
  444. UNION ALL
  445. SELECT CPA_NAME
  446. FROM
  447. #Round7)
  448. GROUP BY CPA_NAME,CPAFirmName,a.id , CPAFirmIndex
  449.  
  450. SELECT CPA_NAME,CPAFirmName,cf.AccountID, cf.CPAFirmIndex
  451. into #Round9
  452.  
  453. FROM
  454. [fp&a]..CPAMatch cm
  455. JOIN
  456. TE_3E_PROD_Clone..ARMaster AM on AM.ARMIndex = cm.ARMIndex
  457. JOIN
  458. TE_3E_PROD_Clone..Matter m on m.MattIndex = am.Matter
  459. JOIN
  460. SalesforceClone..Opportunity o on o.id = m.OpportunityID_CCC COLLATE SQL_Latin1_General_CP1_CI_AS
  461. JOIN
  462. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS = o.Referring_CPA_Firm_ID__c
  463. LEFT JOIN (
  464. SELECT CPAFirmIndex
  465. FROM
  466. #Round1
  467. UNION ALL
  468. SELECT CPAFirmIndex
  469. FROM
  470. #Round2
  471. UNION ALL
  472. SELECT CPAFirmIndex
  473. FROM
  474. #Round3
  475. UNION ALL
  476. SELECT CPAFirmIndex
  477. FROM
  478. #Round4
  479. UNION ALL
  480. SELECT CPAFirmIndex
  481. FROM
  482. #Round5
  483. UNION ALL
  484. SELECT CPAFirmIndex
  485. FROM
  486. #Round6
  487. UNION ALL
  488. SELECT CPAFirmIndex
  489. FROM
  490. #Round7
  491. UNION ALL
  492. SELECT CPAFirmIndex
  493. FROM
  494. #Round8) a on a.CPAFirmIndex = cf.CPAFirmIndex
  495.  
  496. WHERE
  497. a.CPAFirmIndex is null and
  498. CPA_NAME NOT IN (
  499. SELECT CPA_NAME
  500. FROM
  501. #Round1
  502. UNION ALL
  503. SELECT CPA_NAME
  504. FROM
  505. #Round2
  506. UNION ALL
  507. SELECT CPA_NAME
  508. FROM
  509. #Round3
  510. UNION ALL
  511. SELECT CPA_NAME
  512. FROM
  513. #Round4
  514. UNION ALL
  515. SELECT CPA_NAME
  516. FROM
  517. #Round5
  518. UNION ALL
  519. SELECT CPA_NAME
  520. FROM
  521. #Round6
  522. UNION ALL
  523. SELECT CPA_NAME
  524. FROM
  525. #Round7
  526. UNION ALL
  527. SELECT CPA_NAME
  528. FROM
  529. #Round8)
  530. GROUP BY CPA_NAME,CPAFirmName,cf.AccountID , cf.CPAFirmIndex
  531.  
  532.  
  533. SELECT CPA_NAME,CPAFirmName,cf.AccountID, cf.CPAFirmIndex
  534. into #Round10
  535.  
  536. FROM
  537. [fp&a]..CPAMatch cm
  538. JOIN
  539. TE_3E_PROD_Clone..ARMaster AM on AM.ARMIndex = cm.ARMIndex
  540. JOIN
  541. TE_3E_PROD_Clone..Matter m on m.MattIndex = am.Matter
  542. JOIN
  543. SalesforceClone..Opportunity o on o.id = m.OpportunityID_CCC COLLATE SQL_Latin1_General_CP1_CI_AS
  544. JOIN
  545. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS = o.Amending_CPA_Firm_ID__c
  546. LEFT JOIN (
  547. SELECT CPAFirmIndex
  548. FROM
  549. #Round1
  550. UNION ALL
  551. SELECT CPAFirmIndex
  552. FROM
  553. #Round2
  554. UNION ALL
  555. SELECT CPAFirmIndex
  556. FROM
  557. #Round3
  558. UNION ALL
  559. SELECT CPAFirmIndex
  560. FROM
  561. #Round4
  562. UNION ALL
  563. SELECT CPAFirmIndex
  564. FROM
  565. #Round5
  566. UNION ALL
  567. SELECT CPAFirmIndex
  568. FROM
  569. #Round6
  570. UNION ALL
  571. SELECT CPAFirmIndex
  572. FROM
  573. #Round7
  574. UNION ALL
  575. SELECT CPAFirmIndex
  576. FROM
  577. #Round8
  578. UNION ALL
  579. SELECT CPAFirmIndex
  580. FROM
  581. #Round9) a on a.CPAFirmIndex = cf.CPAFirmIndex
  582.  
  583. WHERE
  584. a.CPAFirmIndex is null and
  585. CPA_NAME NOT IN (
  586. SELECT CPA_NAME
  587. FROM
  588. #Round1
  589. UNION ALL
  590. SELECT CPA_NAME
  591. FROM
  592. #Round2
  593. UNION ALL
  594. SELECT CPA_NAME
  595. FROM
  596. #Round3
  597. UNION ALL
  598. SELECT CPA_NAME
  599. FROM
  600. #Round4
  601. UNION ALL
  602. SELECT CPA_NAME
  603. FROM
  604. #Round5
  605. UNION ALL
  606. SELECT CPA_NAME
  607. FROM
  608. #Round6
  609. UNION ALL
  610. SELECT CPA_NAME
  611. FROM
  612. #Round7
  613. UNION ALL
  614. SELECT CPA_NAME
  615. FROM
  616. #Round8
  617. UNION ALL
  618. SELECT CPA_NAME
  619. FROM
  620. #Round9)
  621. GROUP BY CPA_NAME,CPAFirmName,cf.AccountID , cf.CPAFirmIndex
  622.  
  623.  
  624. SELECT CPA_NAME,CPAFirmName,cf.AccountID, cf.CPAFirmIndex
  625. into #Round11
  626.  
  627. FROM
  628. [fp&a]..CPAMatch cm
  629. JOIN
  630. TE_3E_PROD_Clone..ARMaster AM on AM.ARMIndex = cm.ARMIndex
  631. JOIN
  632. TE_3E_PROD_Clone..Matter m on m.MattIndex = am.Matter
  633. JOIN
  634. TE_3E_PROD_Clone..Client c on c.ClientIndex = m.Client
  635. JOIN
  636. SalesforceClone..account ac on ac.id = c.AccountID_CCC COLLATE SQL_Latin1_General_CP1_CI_AS
  637. JOIN
  638. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS = ac.CPA_Account__c
  639. LEFT JOIN (
  640. SELECT CPAFirmIndex
  641. FROM
  642. #Round1
  643. UNION ALL
  644. SELECT CPAFirmIndex
  645. FROM
  646. #Round2
  647. UNION ALL
  648. SELECT CPAFirmIndex
  649. FROM
  650. #Round3
  651. UNION ALL
  652. SELECT CPAFirmIndex
  653. FROM
  654. #Round4
  655. UNION ALL
  656. SELECT CPAFirmIndex
  657. FROM
  658. #Round5
  659. UNION ALL
  660. SELECT CPAFirmIndex
  661. FROM
  662. #Round6
  663. UNION ALL
  664. SELECT CPAFirmIndex
  665. FROM
  666. #Round7
  667. UNION ALL
  668. SELECT CPAFirmIndex
  669. FROM
  670. #Round8
  671. UNION ALL
  672. SELECT CPAFirmIndex
  673. FROM
  674. #Round9
  675. UNION ALL
  676. SELECT CPAFirmIndex
  677. FROM
  678. #Round10) a on a.CPAFirmIndex = cf.CPAFirmIndex
  679.  
  680. WHERE
  681. a.CPAFirmIndex is null and
  682. CPA_NAME NOT IN (
  683. SELECT CPA_NAME
  684. FROM
  685. #Round1
  686. UNION ALL
  687. SELECT CPA_NAME
  688. FROM
  689. #Round2
  690. UNION ALL
  691. SELECT CPA_NAME
  692. FROM
  693. #Round3
  694. UNION ALL
  695. SELECT CPA_NAME
  696. FROM
  697. #Round4
  698. UNION ALL
  699. SELECT CPA_NAME
  700. FROM
  701. #Round5
  702. UNION ALL
  703. SELECT CPA_NAME
  704. FROM
  705. #Round6
  706. UNION ALL
  707. SELECT CPA_NAME
  708. FROM
  709. #Round7
  710. UNION ALL
  711. SELECT CPA_NAME
  712. FROM
  713. #Round8
  714. UNION ALL
  715. SELECT CPA_NAME
  716. FROM
  717. #Round9
  718. UNION ALL
  719. SELECT CPA_NAME
  720. FROM
  721. #Round10)
  722. GROUP BY CPA_NAME,CPAFirmName,cf.AccountID , cf.CPAFirmIndex
  723.  
  724.  
  725.  
  726. SELECT CPA_NAME,CPAFirmName,a.id AccountID, CPAFirmIndex
  727. into #Round12
  728. FROM
  729. [fp&a]..CPAMatch cm
  730. JOIN
  731. SalesforceClone..account a on  a.name like '%' + cm.CPA_NAME + '%'
  732. JOIN
  733. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS = a.id
  734. WHERE
  735.  CPA_NAME != 'Bbs' AND
  736. CPA_NAME NOT IN (
  737. SELECT CPA_NAME
  738. FROM
  739. #Round1
  740. UNION ALL
  741. SELECT CPA_NAME
  742. FROM
  743. #Round2
  744. UNION ALL
  745. SELECT CPA_NAME
  746. FROM
  747. #Round3
  748. UNION ALL
  749. SELECT CPA_NAME
  750. FROM
  751. #Round4
  752. UNION ALL
  753. SELECT CPA_NAME
  754. FROM
  755. #Round5
  756. UNION ALL
  757. SELECT CPA_NAME
  758. FROM
  759. #Round6
  760. UNION ALL
  761. SELECT CPA_NAME
  762. FROM
  763. #Round7
  764. UNION ALL
  765. SELECT CPA_NAME
  766. FROM
  767. #Round8
  768. UNION ALL
  769. SELECT CPA_NAME
  770. FROM
  771. #Round9
  772. UNION ALL
  773. SELECT CPA_NAME
  774. FROM
  775. #Round10
  776. UNION ALL
  777. SELECT CPA_NAME
  778. FROM
  779. #Round11)
  780. GROUP BY CPA_NAME,CPAFirmName,a.id , CPAFirmIndex
  781.  
  782.  
  783. SELECT CPA_NAME,CPAFirmName,a.id AccountID, CPAFirmIndex
  784. into #Round13
  785. FROM
  786. [fp&a]..CPAMatch cm
  787. JOIN
  788. SalesforceClone..account a on  REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(a.name,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'  ',' ') = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(cm.CPA_NAME,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'  ',' ')
  789. JOIN
  790. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS = a.id
  791. WHERE
  792.  CPA_NAME != 'Bbs' AND
  793. CPA_NAME NOT IN (
  794. SELECT CPA_NAME
  795. FROM
  796. #Round1
  797. UNION ALL
  798. SELECT CPA_NAME
  799. FROM
  800. #Round2
  801. UNION ALL
  802. SELECT CPA_NAME
  803. FROM
  804. #Round3
  805. UNION ALL
  806. SELECT CPA_NAME
  807. FROM
  808. #Round4
  809. UNION ALL
  810. SELECT CPA_NAME
  811. FROM
  812. #Round5
  813. UNION ALL
  814. SELECT CPA_NAME
  815. FROM
  816. #Round6
  817. UNION ALL
  818. SELECT CPA_NAME
  819. FROM
  820. #Round7
  821. UNION ALL
  822. SELECT CPA_NAME
  823. FROM
  824. #Round8
  825. UNION ALL
  826. SELECT CPA_NAME
  827. FROM
  828. #Round9
  829. UNION ALL
  830. SELECT CPA_NAME
  831. FROM
  832. #Round10
  833. UNION ALL
  834. SELECT CPA_NAME
  835. FROM
  836. #Round11
  837. UNION ALL
  838. SELECT CPA_NAME
  839. FROM
  840. #Round12)
  841. GROUP BY CPA_NAME,CPAFirmName,a.id , CPAFirmIndex
  842.  
  843.  
  844. SELECT CPA_NAME,CPAFirmName,a.id AccountID, CPAFirmIndex
  845. into #Round14
  846. FROM
  847. [fp&a]..CPAMatch cm
  848. JOIN
  849. SalesforceClone..account a on  REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(a.name,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ') = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(cm.CPA_NAME,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ')
  850. JOIN
  851. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS = a.id
  852. WHERE
  853.  CPA_NAME != 'Bbs' AND
  854. CPA_NAME NOT IN (
  855. SELECT CPA_NAME
  856. FROM
  857. #Round1
  858. UNION ALL
  859. SELECT CPA_NAME
  860. FROM
  861. #Round2
  862. UNION ALL
  863. SELECT CPA_NAME
  864. FROM
  865. #Round3
  866. UNION ALL
  867. SELECT CPA_NAME
  868. FROM
  869. #Round4
  870. UNION ALL
  871. SELECT CPA_NAME
  872. FROM
  873. #Round5
  874. UNION ALL
  875. SELECT CPA_NAME
  876. FROM
  877. #Round6
  878. UNION ALL
  879. SELECT CPA_NAME
  880. FROM
  881. #Round7
  882. UNION ALL
  883. SELECT CPA_NAME
  884. FROM
  885. #Round8
  886. UNION ALL
  887. SELECT CPA_NAME
  888. FROM
  889. #Round9
  890. UNION ALL
  891. SELECT CPA_NAME
  892. FROM
  893. #Round10
  894. UNION ALL
  895. SELECT CPA_NAME
  896. FROM
  897. #Round11
  898. UNION ALL
  899. SELECT CPA_NAME
  900. FROM
  901. #Round12
  902. UNION ALL
  903. SELECT CPA_NAME
  904. FROM
  905. #Round13)
  906. GROUP BY CPA_NAME,CPAFirmName,a.id , CPAFirmIndex
  907.  
  908.  
  909.  
  910.  
  911.  
  912. SELECT CPA_NAME,CPAFirmName,a1.CPA_Account__c AccountID, CPAFirmIndex
  913. into #Round15
  914. FROM
  915. [fp&a]..CPAMatch cm
  916. JOIN
  917. SalesforceClone..Contact c on REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(c.name,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ') = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(cm.CPA_NAME,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ')
  918. JOIN
  919. SalesforceClone..account a1 on  a1.CPA_Contact__c = c.id
  920. JOIN
  921. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS = a1.CPA_Account__c
  922. WHERE
  923.  CPA_NAME != 'Bbs' AND
  924. CPA_NAME NOT IN (
  925. SELECT CPA_NAME
  926. FROM
  927. #Round1
  928. UNION ALL
  929. SELECT CPA_NAME
  930. FROM
  931. #Round2
  932. UNION ALL
  933. SELECT CPA_NAME
  934. FROM
  935. #Round3
  936. UNION ALL
  937. SELECT CPA_NAME
  938. FROM
  939. #Round4
  940. UNION ALL
  941. SELECT CPA_NAME
  942. FROM
  943. #Round5
  944. UNION ALL
  945. SELECT CPA_NAME
  946. FROM
  947. #Round6
  948. UNION ALL
  949. SELECT CPA_NAME
  950. FROM
  951. #Round7
  952. UNION ALL
  953. SELECT CPA_NAME
  954. FROM
  955. #Round8
  956. UNION ALL
  957. SELECT CPA_NAME
  958. FROM
  959. #Round9
  960. UNION ALL
  961. SELECT CPA_NAME
  962. FROM
  963. #Round10
  964. UNION ALL
  965. SELECT CPA_NAME
  966. FROM
  967. #Round11
  968. UNION ALL
  969. SELECT CPA_NAME
  970. FROM
  971. #Round12
  972. UNION ALL
  973. SELECT CPA_NAME
  974. FROM
  975. #Round13
  976. UNION ALL
  977. SELECT CPA_NAME
  978. FROM
  979. #Round14)
  980. GROUP BY CPA_NAME,CPAFirmName,a1.CPA_Account__c , CPAFirmIndex
  981.  
  982.  
  983.  
  984. SELECT CPA_NAME,CPAFirmName,c.AccountId AccountID, CPAFirmIndex
  985. into #Round16
  986. FROM
  987. [fp&a]..CPAMatch cm
  988. JOIN
  989. SalesforceClone..Contact c on REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(c.name,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ') = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(cm.CPA_NAME,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ')
  990. --JOIN
  991. --SalesforceClone..account a1 on  a1.id = c.AccountId
  992. JOIN
  993. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS = c.AccountId
  994. WHERE
  995.  CPA_NAME != 'Bbs' AND CPAFirmName not in ('Miller Ward & Co','Welker Harris & Co') AND
  996. CPA_NAME NOT IN (
  997. SELECT CPA_NAME
  998. FROM
  999. #Round1
  1000. UNION ALL
  1001. SELECT CPA_NAME
  1002. FROM
  1003. #Round2
  1004. UNION ALL
  1005. SELECT CPA_NAME
  1006. FROM
  1007. #Round3
  1008. UNION ALL
  1009. SELECT CPA_NAME
  1010. FROM
  1011. #Round4
  1012. UNION ALL
  1013. SELECT CPA_NAME
  1014. FROM
  1015. #Round5
  1016. UNION ALL
  1017. SELECT CPA_NAME
  1018. FROM
  1019. #Round6
  1020. UNION ALL
  1021. SELECT CPA_NAME
  1022. FROM
  1023. #Round7
  1024. UNION ALL
  1025. SELECT CPA_NAME
  1026. FROM
  1027. #Round8
  1028. UNION ALL
  1029. SELECT CPA_NAME
  1030. FROM
  1031. #Round9
  1032. UNION ALL
  1033. SELECT CPA_NAME
  1034. FROM
  1035. #Round10
  1036. UNION ALL
  1037. SELECT CPA_NAME
  1038. FROM
  1039. #Round11
  1040. UNION ALL
  1041. SELECT CPA_NAME
  1042. FROM
  1043. #Round12
  1044. UNION ALL
  1045. SELECT CPA_NAME
  1046. FROM
  1047. #Round13
  1048. UNION ALL
  1049. SELECT CPA_NAME
  1050. FROM
  1051. #Round14
  1052. UNION ALL
  1053. SELECT CPA_NAME
  1054. FROM
  1055. #Round15)
  1056. GROUP BY CPA_NAME,CPAFirmName,c.AccountId , CPAFirmIndex
  1057.  
  1058.  
  1059.  
  1060. SELECT CPA_NAME,CPAFirmName,a1.CPA_Account__c AccountID, CPAFirmIndex
  1061. into #Round17
  1062. FROM
  1063. [fp&a]..CPAMatch cm
  1064. JOIN
  1065. SalesforceClone..Contact c on REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(c.name,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ') = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(cm.CPA_NAME,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ')
  1066. JOIN
  1067. SalesforceClone..account a1 on  a1.id = c.AccountId
  1068. JOIN
  1069. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS = a1.CPA_Account__c
  1070. WHERE
  1071.  CPA_NAME != 'Bbs' AND CPAFirmName not in ('Miller Ward & Co','Welker Harris & Co','Harding Shymanski & Company Psc - Evansville IN') AND
  1072. CPA_NAME NOT IN (
  1073. SELECT CPA_NAME
  1074. FROM
  1075. #Round1
  1076. UNION ALL
  1077. SELECT CPA_NAME
  1078. FROM
  1079. #Round2
  1080. UNION ALL
  1081. SELECT CPA_NAME
  1082. FROM
  1083. #Round3
  1084. UNION ALL
  1085. SELECT CPA_NAME
  1086. FROM
  1087. #Round4
  1088. UNION ALL
  1089. SELECT CPA_NAME
  1090. FROM
  1091. #Round5
  1092. UNION ALL
  1093. SELECT CPA_NAME
  1094. FROM
  1095. #Round6
  1096. UNION ALL
  1097. SELECT CPA_NAME
  1098. FROM
  1099. #Round7
  1100. UNION ALL
  1101. SELECT CPA_NAME
  1102. FROM
  1103. #Round8
  1104. UNION ALL
  1105. SELECT CPA_NAME
  1106. FROM
  1107. #Round9
  1108. UNION ALL
  1109. SELECT CPA_NAME
  1110. FROM
  1111. #Round10
  1112. UNION ALL
  1113. SELECT CPA_NAME
  1114. FROM
  1115. #Round11
  1116. UNION ALL
  1117. SELECT CPA_NAME
  1118. FROM
  1119. #Round12
  1120. UNION ALL
  1121. SELECT CPA_NAME
  1122. FROM
  1123. #Round13
  1124. UNION ALL
  1125. SELECT CPA_NAME
  1126. FROM
  1127. #Round14
  1128. UNION ALL
  1129. SELECT CPA_NAME
  1130. FROM
  1131. #Round15
  1132. UNION ALL
  1133. SELECT CPA_NAME
  1134. FROM
  1135. #Round16)
  1136. GROUP BY CPA_NAME,CPAFirmName,a1.CPA_Account__c , CPAFirmIndex
  1137.  
  1138.  
  1139.  
  1140. SELECT CPA_NAME,CPAFirmName,a.id AccountID, CPAFirmIndex
  1141. into #Round18
  1142. FROM
  1143. [fp&a]..CPAMatch cm
  1144. JOIN
  1145. SalesforceClone..account a on  REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(a.name,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ') like '%' +  REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(cm.CPA_NAME,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ') + '%'
  1146. JOIN
  1147. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS = a.id
  1148. WHERE
  1149.  CPA_NAME != 'Bbs' AND
  1150. CPA_NAME NOT IN (
  1151. SELECT CPA_NAME
  1152. FROM
  1153. #Round1
  1154. UNION ALL
  1155. SELECT CPA_NAME
  1156. FROM
  1157. #Round2
  1158. UNION ALL
  1159. SELECT CPA_NAME
  1160. FROM
  1161. #Round3
  1162. UNION ALL
  1163. SELECT CPA_NAME
  1164. FROM
  1165. #Round4
  1166. UNION ALL
  1167. SELECT CPA_NAME
  1168. FROM
  1169. #Round5
  1170. UNION ALL
  1171. SELECT CPA_NAME
  1172. FROM
  1173. #Round6
  1174. UNION ALL
  1175. SELECT CPA_NAME
  1176. FROM
  1177. #Round7
  1178. UNION ALL
  1179. SELECT CPA_NAME
  1180. FROM
  1181. #Round8
  1182. UNION ALL
  1183. SELECT CPA_NAME
  1184. FROM
  1185. #Round9
  1186. UNION ALL
  1187. SELECT CPA_NAME
  1188. FROM
  1189. #Round10
  1190. UNION ALL
  1191. SELECT CPA_NAME
  1192. FROM
  1193. #Round11
  1194. UNION ALL
  1195. SELECT CPA_NAME
  1196. FROM
  1197. #Round12
  1198. UNION ALL
  1199. SELECT CPA_NAME
  1200. FROM
  1201. #Round13
  1202. UNION ALL
  1203. SELECT CPA_NAME
  1204. FROM
  1205. #Round14
  1206. UNION ALL
  1207. SELECT CPA_NAME
  1208. FROM
  1209. #Round15
  1210. UNION ALL
  1211. SELECT CPA_NAME
  1212. FROM
  1213. #Round16
  1214. UNION ALL
  1215. SELECT CPA_NAME
  1216. FROM
  1217. #Round17)
  1218. GROUP BY CPA_NAME,CPAFirmName,a.id , CPAFirmIndex
  1219.  
  1220.  
  1221. SELECT CPA_NAME,CPAFirmName,a.id AccountID, CPAFirmIndex
  1222. into #Round19
  1223. FROM
  1224. [fp&a]..CPAMatch cm
  1225. JOIN
  1226. SalesforceClone..account a on  REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(cm.CPA_NAME,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ') like '%' +  REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(a.name,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ') + '%'
  1227. JOIN
  1228. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS = a.id
  1229. WHERE
  1230.  CPA_NAME not in ('Bbs','Cla Financial Advisors, Llc','Clarke, Snow & Riley','Cpa Template','Hassan Cpa','Dean Dorton Allen Ford Pllc','Riitters Thompson & Olson PA') AND
  1231.  CPAFirmName not in ('CLA','CEA LLP','Freyberg Hinkle Ashland Powers & Stowell, SC','Anders','CBIZ','MPM, CPA'+char(39)+'s','Ssa PC','MSPC CPAs & Advisors, P. C.','Anders','AGN','ELO (FKA Endorf Lurken Olson & Co CPA LLC)','Main Amundson and Associates','C&D LLP (fka: Christensen & Drake)','PKF (FKA Batchelor, Frechette, Mc Crory, & Michael)','Smith Linden & Basso LLP','Tys') AND
  1232. CPA_NAME NOT IN (
  1233. SELECT CPA_NAME
  1234. FROM
  1235. #Round1
  1236. UNION ALL
  1237. SELECT CPA_NAME
  1238. FROM
  1239. #Round2
  1240. UNION ALL
  1241. SELECT CPA_NAME
  1242. FROM
  1243. #Round3
  1244. UNION ALL
  1245. SELECT CPA_NAME
  1246. FROM
  1247. #Round4
  1248. UNION ALL
  1249. SELECT CPA_NAME
  1250. FROM
  1251. #Round5
  1252. UNION ALL
  1253. SELECT CPA_NAME
  1254. FROM
  1255. #Round6
  1256. UNION ALL
  1257. SELECT CPA_NAME
  1258. FROM
  1259. #Round7
  1260. UNION ALL
  1261. SELECT CPA_NAME
  1262. FROM
  1263. #Round8
  1264. UNION ALL
  1265. SELECT CPA_NAME
  1266. FROM
  1267. #Round9
  1268. UNION ALL
  1269. SELECT CPA_NAME
  1270. FROM
  1271. #Round10
  1272. UNION ALL
  1273. SELECT CPA_NAME
  1274. FROM
  1275. #Round11
  1276. UNION ALL
  1277. SELECT CPA_NAME
  1278. FROM
  1279. #Round12
  1280. UNION ALL
  1281. SELECT CPA_NAME
  1282. FROM
  1283. #Round13
  1284. UNION ALL
  1285. SELECT CPA_NAME
  1286. FROM
  1287. #Round14
  1288. UNION ALL
  1289. SELECT CPA_NAME
  1290. FROM
  1291. #Round15
  1292. UNION ALL
  1293. SELECT CPA_NAME
  1294. FROM
  1295. #Round16
  1296. UNION ALL
  1297. SELECT CPA_NAME
  1298. FROM
  1299. #Round17
  1300. UNION ALL
  1301. SELECT CPA_NAME
  1302. FROM
  1303. #Round18)
  1304. GROUP BY CPA_NAME,CPAFirmName,a.id , CPAFirmIndex
  1305. */
  1306. drop table if exists #Cpam
  1307. /*
  1308. SELECT CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS CPAFirmName,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS AccountID, CPAFirmIndex
  1309. into #cpam
  1310. FROM
  1311. #Round1
  1312. UNION ALL
  1313. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1314. FROM
  1315. #Round2
  1316. UNION ALL
  1317. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1318. FROM
  1319. #Round3
  1320. UNION ALL
  1321. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1322. FROM
  1323. #Round4
  1324. UNION ALL
  1325. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1326. FROM
  1327. #Round5
  1328. UNION ALL
  1329. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1330. FROM
  1331. #Round6
  1332. UNION ALL
  1333. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1334. FROM
  1335. #Round7
  1336. UNION ALL
  1337. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1338. FROM
  1339. #Round8
  1340. UNION ALL
  1341. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1342. FROM
  1343. #Round9
  1344. UNION ALL
  1345. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1346. FROM
  1347. #Round10
  1348. UNION ALL
  1349. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1350. FROM
  1351. #Round11
  1352. UNION ALL
  1353. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1354. FROM
  1355. #Round12
  1356. UNION ALL
  1357. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1358. FROM
  1359. #Round13
  1360. UNION ALL
  1361. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1362. FROM
  1363. #Round14
  1364. UNION ALL
  1365. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1366. FROM
  1367. #Round15
  1368. UNION ALL
  1369. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1370. FROM
  1371. #Round16
  1372. UNION ALL
  1373. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1374. FROM
  1375. #Round17
  1376. UNION ALL
  1377. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1378. FROM
  1379. #Round18
  1380. UNION ALL
  1381. SELECT  CPA_NAME,CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS,AccountID COLLATE SQL_Latin1_General_CP1_CI_AS, CPAFirmIndex
  1382. FROM
  1383. #Round19
  1384. */
  1385.  
  1386.  
  1387. drop table if exists #Round0;
  1388. drop table if exists #acc;
  1389.  
  1390. SELECT CPA_NAME,CPAFirmName, AccountID, CPAFirmIndex
  1391. into #Round0
  1392. FROM
  1393. (
  1394. SELECT CPA_NAME,CPAFirmName,a.id AccountID, CPAFirmIndex ,ROW_NUMBER()OVER(Partition By CPA_NAME Order By Nbr desc,MaxTS Desc) rn
  1395. FROM
  1396. [FP&A]..CPAMatch CM
  1397. JOIN
  1398. SalesforceClone..Account a on a.Name = CM.CPA_NAME
  1399. JOIN
  1400. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS = a.id
  1401. LEFT JOIN
  1402. (SELECT CPAFirm,COUNT(1) Nbr,MAX(TimeStamp) MaxTS
  1403. FROM
  1404. TE_3E_PROD_Clone..AG_MattCPAFirm
  1405. GROUP BY CPAFirm
  1406. ) MCF on MCF.CPAFirm = CF.CPAFirmIndex
  1407. ) a WHERE rn = 1
  1408. GROUP BY CPA_NAME,CPAFirmName,AccountID , CPAFirmIndex
  1409.  
  1410. INSERT INTO #Round0
  1411. SELECT CPA_NAME,CPAFirmName,AccountID AccountID, CPAFirmIndex
  1412.  
  1413. FROM
  1414. (
  1415. SELECT CPA_NAME,CPAFirmName,AccountID, CPAFirmIndex ,ROW_NUMBER()OVER(Partition By CPA_NAME Order By Nbr desc,MaxTS Desc) rn
  1416. FROM
  1417. [FP&A]..CPAMatch CM
  1418. JOIN
  1419. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS = cm.CPA_NAME
  1420. LEFT JOIN
  1421. (SELECT CPAFirm,COUNT(1) Nbr,MAX(TimeStamp) MaxTS
  1422. FROM
  1423. TE_3E_PROD_Clone..AG_MattCPAFirm
  1424. GROUP BY CPAFirm
  1425. ) MCF on MCF.CPAFirm = CF.CPAFirmIndex
  1426. WHERE AccountID is not null
  1427. ) a WHERE rn = 1
  1428.  
  1429. AND
  1430.  CPA_NAME NOT IN (
  1431. SELECT CPA_NAME
  1432. FROM
  1433. #Round0)
  1434. GROUP BY CPA_NAME,CPAFirmName,AccountID , CPAFirmIndex
  1435.  
  1436. SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(a.name,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ') name,id
  1437. INTO #acc
  1438. FROM SalesforceClone..account  a
  1439.  
  1440. INSERT INTO #Round0
  1441. SELECT CPA_NAME,CPAFirmName,AccountID, CPAFirmIndex
  1442. FROM
  1443. (
  1444. SELECT CPA_NAME,CPAFirmName,AccountID, CPAFirmIndex ,ROW_NUMBER()OVER(Partition By CPA_NAME Order By Nbr desc,MaxTS Desc) rn
  1445. FROM
  1446. (SELECT * FROM
  1447. [fp&a]..CPAMatch cm
  1448. WHERE
  1449. CPA_NAME NOT IN ('Null','Bbs','Hlb Usa','Agh, Llc','agn','Anders','Rost & Co., Cpas, P.C.','J&J Cpas','Braver Pc','Fisher, P.C.','Business Solutions, Llc','Campbell','Cohen & Company','Fisher, P.C.','Lk & Associates','Miller & Co., Plc','Ssa, P.C.','Family Farms') AND
  1450. CPA_NAME NOT IN (
  1451. SELECT CPA_NAME
  1452. FROM
  1453. #Round0))cm
  1454. JOIN
  1455. #acc a on  name like '%' +  REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(cm.CPA_NAME,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ') + '%'
  1456. JOIN
  1457. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS = a.id
  1458. LEFT JOIN
  1459. (SELECT CPAFirm,COUNT(1) Nbr,MAX(TimeStamp) MaxTS
  1460. FROM
  1461. TE_3E_PROD_Clone..AG_MattCPAFirm
  1462. GROUP BY CPAFirm
  1463. ) MCF on MCF.CPAFirm = CF.CPAFirmIndex
  1464. WHERE AccountID is not null
  1465. AND
  1466.  CPAFirmName NOT IN ('Boas & Boas LLP','Landucci, Bick, Matter & Johnston LLP','Mullen Howard Hammatt & Co PA','Lublin Sussman Group LLP','Don Friedman','Bohlmann Accounting Group PLLC','Baden Gage & Schroeder LLC - Dupe2','Sharrard McGee & Co','Travis Wolff & Co.','CDPA','MSPC CPAs & Advisors, P. C.')
  1467. ) a WHERE rn = 1
  1468. GROUP BY CPA_NAME,CPAFirmName,AccountID , CPAFirmIndex
  1469.  
  1470.  
  1471.  
  1472. INSERT INTO #Round0
  1473. SELECT CPA_NAME,CPAFirmName,AccountID, CPAFirmIndex
  1474. FROM
  1475. (
  1476. SELECT CPA_NAME,CPAFirmName,AccountID, CPAFirmIndex ,ROW_NUMBER()OVER(Partition By CPA_NAME Order By Nbr desc,MaxTS Desc) rn
  1477. FROM
  1478. (SELECT * FROM
  1479. [fp&a]..CPAMatch cm
  1480. WHERE
  1481. CPA_NAME NOT IN ('Null','Bbs','Hlb Usa','Agh, Llc','agn','Anders','Rost & Co., Cpas, P.C.','J&J Cpas','Braver Pc','Fisher, P.C.','Business Solutions, Llc','Campbell','Cohen & Company','Fisher, P.C.','Lk & Associates','Miller & Co., Plc','Ssa, P.C.','Family Farms') AND
  1482. CPA_NAME NOT IN (
  1483. SELECT CPA_NAME
  1484. FROM
  1485. #Round0))cm
  1486. JOIN
  1487. #acc a on REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(cm.CPA_NAME,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ')  like '%' +  name + '%'
  1488. JOIN
  1489. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS = a.id
  1490. LEFT JOIN
  1491. (SELECT CPAFirm,COUNT(1) Nbr,MAX(TimeStamp) MaxTS
  1492. FROM
  1493. TE_3E_PROD_Clone..AG_MattCPAFirm
  1494. GROUP BY CPAFirm
  1495. ) MCF on MCF.CPAFirm = CF.CPAFirmIndex
  1496. WHERE AccountID is not null
  1497. AND
  1498.  CPAFirmName NOT IN ('Boas & Boas LLP','Landucci, Bick, Matter & Johnston LLP','Mullen Howard Hammatt & Co PA','Lublin Sussman Group LLP','Don Friedman','Bohlmann Accounting Group PLLC','Baden Gage & Schroeder LLC - Dupe2','Sharrard McGee & Co','Travis Wolff & Co.','CDPA','MSPC CPAs & Advisors, P. C.')
  1499. ) a WHERE rn = 1
  1500. GROUP BY CPA_NAME,CPAFirmName,AccountID , CPAFirmIndex
  1501.  
  1502.  
  1503. SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(a.CPAFirmName,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ') name,CPAFirmIndex,AccountID
  1504. INTO #acc3e
  1505. FROM TE_3E_PROD_Clone..AG_CPAFirm  a
  1506.  
  1507.  
  1508. INSERT INTO #Round0
  1509. SELECT CPA_NAME,CPAFirmName,AccountID, CPAFirmIndex
  1510. FROM
  1511. (
  1512. SELECT CPA_NAME,name CPAFirmName,AccountID, CPAFirmIndex ,ROW_NUMBER()OVER(Partition By CPA_NAME Order By Nbr desc,MaxTS Desc) rn
  1513. FROM
  1514. (SELECT * FROM
  1515. [fp&a]..CPAMatch cm
  1516. WHERE
  1517. CPA_NAME NOT IN ('Null','Bbs','Hlb Usa','Agh, Llc','agn','Anders','Rost & Co., Cpas, P.C.','J&J Cpas','Braver Pc','Fisher, P.C.','Business Solutions, Llc','Campbell','Cohen & Company','Fisher, P.C.','Lk & Associates','Miller & Co., Plc','Ssa, P.C.','Family Farms') AND
  1518. CPA_NAME NOT IN (
  1519. SELECT CPA_NAME
  1520. FROM
  1521. #Round0))cm
  1522. JOIN
  1523. #acc3e a on  REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(cm.CPA_NAME COLLATE SQL_Latin1_General_CP1_CI_AS,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ')  like '%' + name + '%'
  1524. LEFT JOIN
  1525. (SELECT CPAFirm,COUNT(1) Nbr,MAX(TimeStamp) MaxTS
  1526. FROM
  1527. TE_3E_PROD_Clone..AG_MattCPAFirm
  1528. GROUP BY CPAFirm
  1529. ) MCF on MCF.CPAFirm = a.CPAFirmIndex
  1530. WHERE AccountID is not null
  1531. AND
  1532.  name COLLATE SQL_Latin1_General_CP1_CI_AS NOT IN ('MBE','RKE','Boas & Boas LLP','Landucci, Bick, Matter & Johnston LLP','Mullen Howard Hammatt & Co PA','Lublin Sussman Group LLP','Don Friedman','Bohlmann Accounting Group PLLC','Baden Gage & Schroeder LLC - Dupe2','Sharrard McGee & Co','Travis Wolff & Co.','CDPA','MSPC CPAs & Advisors, P. C.')
  1533. ) a WHERE rn = 1
  1534. GROUP BY CPA_NAME,CPAFirmName,AccountID , CPAFirmIndex
  1535.  
  1536.  
  1537. INSERT INTO #Round0
  1538. SELECT CPA_NAME,CPAFirmName,AccountID, CPAFirmIndex
  1539. FROM
  1540. (
  1541. SELECT CPA_NAME,name CPAFirmName,AccountID, CPAFirmIndex ,ROW_NUMBER()OVER(Partition By CPA_NAME Order By Nbr desc,MaxTS Desc) rn
  1542. FROM
  1543. (SELECT * FROM
  1544. [fp&a]..CPAMatch cm
  1545. WHERE
  1546. CPA_NAME NOT IN ('Null','Bbs','Hlb Usa','Agh, Llc','agn','Anders','Rost & Co., Cpas, P.C.','J&J Cpas','Braver Pc','Fisher, P.C.','Business Solutions, Llc','Campbell','Cohen & Company','Fisher, P.C.','Lk & Associates','Miller & Co., Plc','Ssa, P.C.','Family Farms') AND
  1547. CPA_NAME NOT IN (
  1548. SELECT CPA_NAME
  1549. FROM
  1550. #Round0))cm
  1551. JOIN
  1552. #acc3e a on name  like '%' +  REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(cm.CPA_NAME COLLATE SQL_Latin1_General_CP1_CI_AS,'*',''),',',''),' & ',' '),' and ',' '),'.',''),'Company','Co'),' Cpas',''),' LLC',''),' PC',''),' P C',''),' PLC',''),char(39)+'s','') ,'  ',' ') + '%'
  1553. LEFT JOIN
  1554. (SELECT CPAFirm,COUNT(1) Nbr,MAX(TimeStamp) MaxTS
  1555. FROM
  1556. TE_3E_PROD_Clone..AG_MattCPAFirm
  1557. GROUP BY CPAFirm
  1558. ) MCF on MCF.CPAFirm = a.CPAFirmIndex
  1559. WHERE AccountID is not null
  1560. AND
  1561.  name COLLATE SQL_Latin1_General_CP1_CI_AS NOT IN ('MBE','RKE','Boas & Boas LLP','Landucci, Bick, Matter & Johnston LLP','Mullen Howard Hammatt & Co PA','Lublin Sussman Group LLP','Don Friedman','Bohlmann Accounting Group PLLC','Baden Gage & Schroeder LLC - Dupe2','Sharrard McGee & Co','Travis Wolff & Co.','CDPA','MSPC CPAs & Advisors, P. C.')
  1562. ) a WHERE rn = 1
  1563. GROUP BY CPA_NAME,CPAFirmName,AccountID , CPAFirmIndex
  1564.  
  1565.  
  1566. INSERT INTO #Round0
  1567. SELECT CPA_NAME,CPAFirmName,AccountID, CPAFirmIndex-- ,a2.name--,MatterNUmber
  1568. FROM
  1569. (
  1570. SELECT CPA_NAME,CPAFirmName,AccountID, CPAFirmIndex ,ROW_NUMBER()OVER(Partition By CPA_NAME Order By Nbr desc,MaxTS Desc) rn,MatterNUmber
  1571. FROM
  1572. (SELECT CPA_NAME,MatterNUmber FROM
  1573. [fp&a]..CPAMatch CM
  1574. where
  1575. CPA_NAME NOT IN (SELECT CPA_NAME
  1576. FROM
  1577. #Round0) AND
  1578. ARMIndex IN (
  1579. SELECT ARMIndex
  1580. FROM
  1581. [fp&a]..CPAMatch
  1582. GROUP BY ARMIndex
  1583. HAVING COUNT(ARMIndex) = 1 AND SUM(COALESCE(TRY_CAST(AMOUNTDUETOCPA as numeric),0))>0)
  1584. GROUP BY  CPA_NAME,MatterNUmber
  1585. ) CM
  1586. JOIN
  1587. TE_3E_PROD_Clone..Matter M on M.NUmber COLLATE SQL_Latin1_General_CP1_CI_AS = CM.MatterNUmber
  1588. JOIN
  1589. (SELECT Matterlkup,MAX(CPAFirm) CPAFirm
  1590. FROM
  1591. TE_3E_PROD_Clone..AG_MattCPAFirm
  1592. GROUP BY MatterLkup
  1593. HAVING COUNT(DISTINCT CPAFirm)=1
  1594. )
  1595. MCF on MCF.MatterLkup = M.MattINdex
  1596. JOIN
  1597. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.CPAFirmIndex = MCF.CPAFirm
  1598. LEFT JOIN
  1599. (SELECT CPAFirm,COUNT(1) Nbr,MAX(TimeStamp) MaxTS
  1600. FROM
  1601. TE_3E_PROD_Clone..AG_MattCPAFirm
  1602. GROUP BY CPAFirm
  1603. ) MCF2 on MCF.CPAFirm = CF.CPAFirmIndex
  1604. WHERE AccountID is not null
  1605. ) a
  1606. JOIN
  1607. SalesForceClone..account a2 on a2.id = a.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS
  1608. WHERE rn = 1
  1609. GROUP BY
  1610. CPA_NAME,CPAFirmName,AccountID,CPAFirmIndex--,a2.name--,MatterNUmber
  1611.  
  1612.  
  1613.  
  1614.  
  1615. INSERT INTO #Round0
  1616. SELECT CPA_NAME,CPAFirmName,AccountID, CPAFirmIndex-- ,a2.name--,MatterNUmber
  1617. FROM
  1618. (
  1619. SELECT CPA_NAME,CPAFirmName,AccountID, CPAFirmIndex ,ROW_NUMBER()OVER(Partition By CPA_NAME Order By Nbr desc,MaxTS Desc) rn,MatterNUmber
  1620. FROM
  1621. (SELECT CPA_NAME,MatterNUmber FROM
  1622. [fp&a]..CPAMatch CM
  1623. where
  1624. CPA_NAME NOT IN (SELECT CPA_NAME
  1625. FROM
  1626. #Round0) AND
  1627. ARMIndex IN (
  1628. SELECT ARMIndex
  1629. FROM
  1630. [fp&a]..CPAMatch
  1631. GROUP BY ARMIndex
  1632. HAVING COUNT(ARMIndex) = 1 )
  1633. GROUP BY  CPA_NAME,MatterNUmber
  1634. ) CM
  1635. JOIN
  1636. TE_3E_PROD_Clone..Matter M on M.NUmber COLLATE SQL_Latin1_General_CP1_CI_AS = CM.MatterNUmber
  1637. JOIN
  1638. (SELECT Matterlkup,MAX(CPAFirm) CPAFirm
  1639. FROM
  1640. TE_3E_PROD_Clone..AG_MattCPAFirm
  1641. GROUP BY MatterLkup
  1642. HAVING COUNT(DISTINCT CPAFirm)=1
  1643. )
  1644. MCF on MCF.MatterLkup = M.MattINdex
  1645. JOIN
  1646. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.CPAFirmIndex = MCF.CPAFirm
  1647. LEFT JOIN
  1648. (SELECT CPAFirm,COUNT(1) Nbr,MAX(TimeStamp) MaxTS
  1649. FROM
  1650. TE_3E_PROD_Clone..AG_MattCPAFirm
  1651. GROUP BY CPAFirm
  1652. ) MCF2 on MCF.CPAFirm = CF.CPAFirmIndex
  1653. WHERE AccountID is not null
  1654. ) a
  1655. JOIN
  1656. SalesForceClone..account a2 on a2.id = a.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS
  1657. WHERE rn = 1
  1658. GROUP BY
  1659. CPA_NAME,CPAFirmName,AccountID,CPAFirmIndex--,a2.name--,MatterNUmber
  1660.  
  1661. INSERT INTO #Round0
  1662. SELECT CPA_NAME,CPAFirmName,AccountID, CPAFirmIndex-- ,a2.name--,MatterNUmber
  1663. FROM
  1664. (
  1665. SELECT CPA_NAME,CPAFirmName,AccountID, CPAFirmIndex ,ROW_NUMBER()OVER(Partition By CPA_NAME Order By Nbr desc,MaxTS Desc) rn,MatterNUmber
  1666. FROM
  1667. (SELECT CPA_NAME,MatterNUmber FROM
  1668. [fp&a]..CPAMatch CM
  1669. where
  1670. CPA_NAME NOT IN (SELECT CPA_NAME
  1671. FROM
  1672. #Round0) AND
  1673. ARMIndex IN (
  1674. SELECT ARMIndex
  1675. FROM
  1676. [fp&a]..CPAMatch
  1677. where
  1678. CPA_NAME NOT IN (SELECT CPA_NAME
  1679. FROM
  1680. #Round0)
  1681. GROUP BY ARMIndex
  1682. HAVING COUNT(ARMIndex) = 1 )
  1683. GROUP BY  CPA_NAME,MatterNUmber
  1684. ) CM
  1685. JOIN
  1686. TE_3E_PROD_Clone..Matter M on M.NUmber COLLATE SQL_Latin1_General_CP1_CI_AS = CM.MatterNUmber
  1687. JOIN
  1688. (SELECT Matterlkup,MAX(CPAFirm) CPAFirm
  1689. FROM
  1690. TE_3E_PROD_Clone..AG_MattCPAFirm
  1691. where
  1692. CPAFirm NOT IN (SELECT CPAFirmIndex
  1693. FROM
  1694. #Round0)
  1695. GROUP BY MatterLkup
  1696. HAVING COUNT(DISTINCT CPAFirm)=1
  1697. )
  1698. MCF on MCF.MatterLkup = M.MattINdex
  1699. JOIN
  1700. TE_3E_PROD_Clone..AG_CPAFirm CF on CF.CPAFirmIndex = MCF.CPAFirm
  1701. LEFT JOIN
  1702. (SELECT CPAFirm,COUNT(1) Nbr,MAX(TimeStamp) MaxTS
  1703. FROM
  1704. TE_3E_PROD_Clone..AG_MattCPAFirm
  1705. GROUP BY CPAFirm
  1706. ) MCF2 on MCF.CPAFirm = CF.CPAFirmIndex
  1707. WHERE AccountID is not null
  1708. ) a
  1709. JOIN
  1710. SalesForceClone..account a2 on a2.id = a.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS
  1711. WHERE rn = 1
  1712. GROUP BY
  1713. CPA_NAME,CPAFirmName,AccountID,CPAFirmIndex--,a2.name--,MatterNUmber
  1714.  
  1715.  
  1716.  
  1717. SELECT CPA_NAME, CPAFirmName, AccountID, CPAFirmIndex
  1718. into #cpam
  1719. FROM
  1720. #Round0
  1721.  
  1722.  
  1723. --SELECT *
  1724. --FROM
  1725. --#cpam
  1726.  
  1727. drop table if exists #cpahm;
  1728.  
  1729.        select
  1730.               c.*
  1731.        --,      cpa1.[Type] [CPA1_Type]
  1732.        --,      cpa1.[ParentId] [CPA1_ParentId]
  1733.        --,      cpa1.CreatedDate [CPA1_CreatedDate]
  1734.        ,      coalesce(cpa4.[Id], cpa3.[Id], cpa2.[Id], cpa1.[Id]) [CPATop_AccountId]
  1735.        ,      coalesce(cpa4.[Name], cpa3.[Name], cpa2.[Name], cpa1.[Name]) [CPATop_Name]
  1736.        --,      cpa2.[Id] [CPA2_AccountId]
  1737.        --,      cpa2.[Name] [CPA2_Name]
  1738.        --,      cpa2.[ParentId] [CPA2_ParentId]
  1739.        --,      cpa3.[Id] [CPA3_AccountId]
  1740.        --,      cpa3.[Name] [CPA3_Name]
  1741.        --,      cpa3.[ParentId] [CPA3_ParentId]
  1742.        --,      cpa4.[Id] [CPA4_AccountId]
  1743.        --,      cpa4.[Name] [CPA4_Name]
  1744.        --,      cpa4.[ParentId] [CPA4_ParentId]
  1745.        into #cpahm
  1746.        from
  1747.               #cpam c
  1748.        left join
  1749.               SalesForceClone.dbo.Account cpa1 on cpa1.[Id] = c.AccountID
  1750.        left join
  1751.               SalesForceClone.dbo.Account cpa2 on cpa2.[Id] = cpa1.[ParentId]
  1752.        left join
  1753.               SalesForceClone.dbo.Account cpa3 on cpa3.[Id] = cpa2.[ParentId]
  1754.        left join
  1755.               SalesForceClone.dbo.Account cpa4 on cpa4.id = cpa3.ParentId
  1756.  
  1757.  
  1758.  
  1759.  
  1760. drop table if exists #cpa;
  1761.  
  1762.        select
  1763.               a.[CPAId]
  1764.        ,      a.[CPAName]
  1765.        into #cpa
  1766.        from
  1767.               (
  1768.                      select
  1769.                            o.Referring_CPA_Firm_ID__c [CPAId]
  1770.                      ,      o.CPA_Referral_Firm__c [CPAName]
  1771.                      from
  1772.                            SalesForceClone.dbo.Opportunity o
  1773.                      where
  1774.                            StageName like '%closed%'
  1775.                            and o.Referring_CPA_Firm_ID__c is not null
  1776.                      group by
  1777.                            o.Referring_CPA_Firm_ID__c
  1778.                      ,      o.CPA_Referral_Firm__c
  1779.  
  1780.                      union all
  1781.  
  1782.                      select
  1783.                            o.Amending_CPA_Firm_ID__c [CPAId]
  1784.                      ,      o.Amending_CPA_Firm__c [CPAName]
  1785.                      from
  1786.                            SalesForceClone.dbo.Opportunity o
  1787.                      where
  1788.                            StageName like '%closed%'
  1789.                            and o.Amending_CPA_Firm_ID__c is not null
  1790.                      group by
  1791.                            o.Amending_CPA_Firm_ID__c
  1792.                      ,      o.Amending_CPA_Firm__c
  1793.  
  1794.                      union all
  1795.  
  1796.                      select
  1797.                            cpa.Id [CPAId]
  1798.                      ,      cpa.[Name] [CPAName]
  1799.                      from
  1800.                            SalesForceClone.dbo.Opportunity o
  1801.                      left join
  1802.                            SalesForceClone.dbo.Account a on a.id = o.AccountId
  1803.                      left join
  1804.                            SalesForceClone.dbo.Account cpa on cpa.id = a.CPA_Account__c
  1805.                      where
  1806.                            o.StageName like '%closed%'
  1807.                            and cpa.Id is not null
  1808.                      group by
  1809.                            cpa.Id
  1810.                      ,      cpa.[Name]
  1811.               ) a
  1812.        group by
  1813.               [CPAId]
  1814.        ,      [CPAName]
  1815.  
  1816.  
  1817. drop table if exists #cpah;
  1818.  
  1819.        select
  1820.               c.[CPAId] [CPA1_AccountId]
  1821.        ,      c.[CPAName] [CPA1_Name]
  1822.        ,      cpa1.[Type] [CPA1_Type]
  1823.        ,      cpa1.[ParentId] [CPA1_ParentId]
  1824.        ,      cpa1.CreatedDate [CPA1_CreatedDate]
  1825.        ,      coalesce(cpa4.[Id], cpa3.[Id], cpa2.[Id], cpa1.[Id]) [CPATop_AccountId]
  1826.        ,      coalesce(cpa4.[Name], cpa3.[Name], cpa2.[Name], cpa1.[Name]) [CPATop_Name]
  1827.        ,      cpa2.[Id] [CPA2_AccountId]
  1828.        ,      cpa2.[Name] [CPA2_Name]
  1829.        ,      cpa2.[ParentId] [CPA2_ParentId]
  1830.        ,      cpa3.[Id] [CPA3_AccountId]
  1831.        ,      cpa3.[Name] [CPA3_Name]
  1832.        ,      cpa3.[ParentId] [CPA3_ParentId]
  1833.        ,      cpa4.[Id] [CPA4_AccountId]
  1834.        ,      cpa4.[Name] [CPA4_Name]
  1835.        ,      cpa4.[ParentId] [CPA4_ParentId]
  1836.        into #cpah
  1837.        from
  1838.               #cpa c
  1839.        left join
  1840.               SalesForceClone.dbo.Account cpa1 on cpa1.[Id] = c.[CPAId]
  1841.        left join
  1842.               SalesForceClone.dbo.Account cpa2 on cpa2.[Id] = cpa1.[ParentId]
  1843.        left join
  1844.               SalesForceClone.dbo.Account cpa3 on cpa3.[Id] = cpa2.[ParentId]
  1845.        left join
  1846.               SalesForceClone.dbo.Account cpa4 on cpa4.id = cpa3.ParentId
  1847.  
  1848.  
  1849. --SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  1850.  
  1851. drop table if exists #Base;
  1852.  
  1853. SELECT CPAMatchId,
  1854. CPA_NAME
  1855. , CM.Client,
  1856.           CASE WHEN PAIDINFULL ='0' THEN NULL ELSE PAIDINFULL END [Client Paid In Full], CM.INVOICENUMBER,
  1857.           CASE WHEN (INVOICEDATE='1/0/1900' OR INVOICEDATE='0') THEN '' ELSE FORMAT(try_convert(DATE, INVOICEDATE), 'MM/dd/yyyy') END [Invoice Date],
  1858.           try_convert(DECIMAL(15,2),CASE WHEN INVOICEAMOUNT='0' THEN '' WHEN ROW_NUMBER()OVER(Partition By CM.INVOICENUMBER,CM.Client ORDER BY CM.ARMIndex) != 1 AND CM.ARMIndex != -1 THEN '0' ELSE INVOICEAMOUNT END) [Invoice Amount],
  1859.           try_convert(DECIMAL(15,2),CASE WHEN AMOUNTPAID is null THEN '0' ELSE AMOUNTPAID END) [Amount Paid],
  1860.           try_convert(DECIMAL(15,2),CASE WHEN EXPENSES IS NULL THEN '0' ELSE EXPENSES END) [Expenses],
  1861.           try_convert(DECIMAL(15,2),CASE WHEN AMOUNTPAIDLESSEXPENSES IS NULL THEN '0' ELSE AMOUNTPAIDLESSEXPENSES END) [Amount Paid Less Expenses],
  1862.           try_convert(Decimal(15,2),CASE WHEN AMOUNTDUETOCPA IS NULL OR (TRY_CAST(AMOUNTDUETOCPA as decimal(15,2))>2000000000000 AND AMOUNTPAID = '0') THEN '0' ELSE AMOUNTDUETOCPA END) [Amount Due To CPA],
  1863.           try_convert(DECIMAL(15,2),CASE WHEN AMOUNTPAIDTOCPA = '0' OR (TRY_CAST(AMOUNTDUETOCPA as decimal(15,2))>2000000000000 AND AMOUNTPAID = '0')  THEN NULL ELSE AMOUNTPAIDTOCPA END) [Amount Paid To CPA],
  1864.           CASE WHEN (DATEPAIDTOCPA='1/0/1900' OR DATEPAIDTOCPA='0') THEN '' ELSE FORMAT(try_convert(DATE, DATEPAIDTOCPA), 'MM/dd/yyyy') END [Date Paid],
  1865.           try_convert(Decimal(15,2), REMAININGDUETOCPA ) [Remaining Amount Due to CPA]
  1866.           ,CASE
  1867.           WHEN MAX(NULLIF(COALESCE(CASE WHEN nord.Mattindex is null and COALESCE(CM.ARMIndex,-1) != -1 THEN 225 END, MD.PG2,C.PG2,C2.PG2,-1),-1))OVER(PARTITION BY CPA_NAME)
  1868.           = MIN(NULLIF(COALESCE(CASE WHEN nord.Mattindex is null and COALESCE(CM.ARMIndex,-1) != -1 THEN 225 END, MD.PG2,C.PG2,C2.PG2,-1),-1))OVER(PARTITION BY CPA_NAME) THEN
  1869.           MAX(NULLIF(COALESCE(CASE WHEN nord.Mattindex is null and COALESCE(CM.ARMIndex,-1) != -1 THEN 225 END, MD.PG2,C.PG2,C2.PG2,-1),-1))OVER(PARTITION BY CPA_NAME)
  1870.           WHEN MAX(NULLIF(COALESCE(CASE WHEN nord.Mattindex is null and COALESCE(CM.ARMIndex,-1) != -1 THEN 225 END, MD.PG2,C.PG2,C2.PG2,-1),-1))OVER(PARTITION BY CPA_NAME,CM.Client)
  1871.           = MIN(NULLIF(COALESCE(CASE WHEN nord.Mattindex is null and COALESCE(CM.ARMIndex,-1) != -1 THEN 225 END, MD.PG2,C.PG2,C2.PG2,-1),-1))OVER(PARTITION BY CPA_NAME,CM.Client) THEN
  1872.           MAX(NULLIF(COALESCE(CASE WHEN nord.Mattindex is null and COALESCE(CM.ARMIndex,-1) != -1 THEN 225 END, MD.PG2,C.PG2,C2.PG2,-1),-1))OVER(PARTITION BY CPA_NAME,CM.Client)
  1873.           ELSE COALESCE(CASE WHEN nord.Mattindex is null and COALESCE(CM.ARMIndex,-1) != -1 THEN 225 END, MD.PG2,C.PG2,C2.PG2,-1)
  1874.           END
  1875.            SL
  1876.           ,CM.MattCategory
  1877.          
  1878.           INTO #Base
  1879.           FROM [FP&A].dbo.CPAMatch CM
  1880.           LEFT JOIN
  1881.           TE_3E_PROD_Clone..ARMaster AM on AM.ARMIndex = CM.ARMIndex
  1882.           OUTER APPLY
  1883.           (SELECT TOP 1 MD.* ,CASE WHEN MattStatus in ('KO','TERM') AND PracticeGRoup = 225 THEN 110
  1884.           WHEN  (pc.PGDetHdr is null OR FNDate >AM.InvDate) AND PracticeGRoup = 225 THEN 110
  1885.           ELSE PracticeGRoup END PG2,FnDate
  1886.           FROM
  1887.           TE_3E_PROD_Clone..MattDate MD
  1888.           JOIN
  1889.           TE_3E_PROD_Clone..Matter M on M.MattIndex = MD.Matterlkup
  1890.           JOIN
  1891.           TE_3E_PROD_Clone..PGDetHdr_CCC PH on PH.MatterLkUp = M.MattIndex --AND PH.NxEndDate = '99991231' AND PH.NxStartDate != '99991231'
  1892.           LEFT JOIN
  1893.           (SELECT PGDetHdr,MIN(FNDATE) FnDate FROM TE_3E_PROD_Clone..PGDetChild_CCC PC WHERE TriggerType = 'FN' GROUP BY PGDetHdr) PC on PC.PGDetHdr = PH.PGDetHdr_CCCID
  1894.           WHERE MD.MatterLkUp = AM.Matter and MD.NxEndDate = '99991231' --and MD.PracticeGroup IN (@PG)
  1895.           ORDER by MD.NxStartDate,COALESCE(FnDate,GETDATE())) MD
  1896.           OUTER APPLY
  1897.           (SELECT TOP 1 MD.*,CASE WHEN MattStatus in ('KO','TERM') AND PracticeGRoup = 225 THEN 110
  1898.           WHEN  (pc.PGDetHdr is null OR FNDate >IM.InvDate) AND PracticeGRoup = 225 THEN 110
  1899.           ELSE PracticeGRoup END PG2
  1900.           FROM
  1901.           TE_3E_PROD_Clone..Payor P
  1902.           JOIN
  1903.           TE_3E_PROD_Clone..InvMaster IM on IM.DefPayor = P.PayorIndex
  1904.           JOIN
  1905.           TE_3E_PROD_Clone..ARMaster AM on AM.InvMaster = IM.InvIndex
  1906.           JOIN
  1907.           TE_3E_PROD_Clone..MattDate MD on MD.MatterLkUp = AM.Matter  and NxEndDate = '99991231'
  1908.           JOIN
  1909.           TE_3E_PROD_Clone..Matter M on M.MattIndex = MD.Matterlkup
  1910.           JOIN
  1911.           TE_3E_PROD_Clone..PGDetHdr_CCC PH on PH.MatterLkUp = M.MattIndex --AND PH.NxEndDate = '99991231' AND PH.NxStartDate != '99991231'
  1912.           LEFT JOIN
  1913.           (SELECT PGDetHdr,MIN(FNDATE) FnDate FROM TE_3E_PROD_Clone..PGDetChild_CCC PC WHERE TriggerType = 'FN' GROUP BY PGDetHdr) PC on PC.PGDetHdr = PH.PGDetHdr_CCCID
  1914.           WHERE  P.Entity = CM.[CLIENT ID] --and MD.PracticeGroup IN (@PG)
  1915.           ORDER BY CASE WHEN IM.InvDate = TRY_CAST(CM.INVOICEDATE as datetime) THEN 0 ELSE 1 END,ABS(CM.INVOICEAMOUNT + AM.ARAmt),COALESCE(FnDate,GETDATE())
  1916.           ) C
  1917.           OUTER APPLY
  1918.           (SELECT TOP 1 MD.*,CASE WHEN MattStatus in ('KO','TERM') AND PracticeGRoup = 225 THEN 110
  1919.           WHEN (pc.PGDetHdr is null OR FNDate >IM.InvDate) AND PracticeGRoup = 225 THEN 110
  1920.           ELSE PracticeGRoup END PG2
  1921.           FROM
  1922.           TE_3E_PROD_Clone..Payor P
  1923.           JOIN
  1924.           TE_3E_PROD_Clone..InvMaster IM on IM.DefPayor = P.PayorIndex
  1925.           JOIN
  1926.           TE_3E_PROD_Clone..ARMaster AM on AM.InvMaster = IM.InvIndex
  1927.           JOIN
  1928.           TE_3E_PROD_Clone..MattDate MD on MD.MatterLkUp = AM.Matter  and NxEndDate = '99991231'
  1929.           JOIN
  1930.           TE_3E_PROD_Clone..Matter M on M.MattIndex = MD.Matterlkup
  1931.           JOIN
  1932.           TE_3E_PROD_Clone..PGDetHdr_CCC PH on PH.MatterLkUp = M.MattIndex --AND PH.NxEndDate = '99991231' AND PH.NxStartDate != '99991231'
  1933.           LEFT JOIN
  1934.           (SELECT PGDetHdr,MIN(FNDATE) FnDate FROM TE_3E_PROD_Clone..PGDetChild_CCC PC WHERE TriggerType = 'FN' GROUP BY PGDetHdr) PC on PC.PGDetHdr = PH.PGDetHdr_CCCID
  1935.           WHERE  P.DisplayName COLLATE SQL_Latin1_General_CP1_CI_AS = CM.Client --and MD.PracticeGroup IN (@PG)
  1936.           ORDER BY CASE WHEN IM.InvDate = TRY_CAST(CM.INVOICEDATE as datetime) THEN 0 ELSE 1 END,ABS(CM.INVOICEAMOUNT + AM.ARAmt),COALESCE(FnDate,GETDATE())
  1937.           ) C2
  1938.           OUTER APPLY
  1939.           (SELECT TOP 1 mrd.* FROM TE_3E_PROD_Clone..Matter m
  1940.           JOIN
  1941.           TE_3E_PROD_Clone..Client c on c.ClientIndex = m.Client
  1942.           JOIN
  1943.           TE_3E_PROD_Clone..Matter mrd on mrd.client = c.ClientINdex
  1944.           JOIN
  1945.           TE_3E_PROD_Clone..MattDate MD on MD.Matterlkup = mrd.MattIndex AND NxEndDate = '99991231' and NxStartDate != '99991231' and PracticeGroup in (110,120,130)
  1946.           WHERE m.MattIndex = AM. Matter) nord
  1947.          where
  1948.             cpamatchid not in (select cpamatchid from [FP&A].dbo.CPAMatch where ARMIndex != -1 and isnull(trim(AMOUNTDUETOCPA),'0') = '0' and CPAMatchId is not null)
  1949.          --AND (COALESCE(CASE WHEN nord.Mattindex is null and COALESCE(CM.ARMIndex,-1) != -1 THEN 225 END, MD.PG2,C.PG2,C2.PG2,-1) IN (@PG))
  1950.          --AND CPA_NAME = @CPAParameter) IN (@PG))
  1951.          --AND CPA_NAME = 'Somerset Cpas'
  1952.          
  1953. drop table if exists #SLD;
  1954.  
  1955. SELECT *
  1956. INTO #SLD
  1957. FROM (
  1958. SELECT CM.CPA_NAME
  1959. ,CM.[Amount Paid To CPA]
  1960. ,pg.Description SLD
  1961. FROM
  1962. (
  1963. SELECT *
  1964. FROM
  1965. #Base) CM
  1966.  
  1967.          LEFT JOIN
  1968.          TE_3E_PROD_CLONE..PracticeGRoup pg on pg.code = CM.SL
  1969.  
  1970. ) p PIVOT
  1971. (SUM([AMount Paid To CPA]) FOR SLD IN ([R&D Services],[ERC Services],[179D Services])) p
  1972.  
  1973.  
  1974. drop table if exists #SLO;
  1975.  
  1976. SELECT CPA_NAME
  1977. ,[R&D Services] [R&D Services OS]
  1978. ,[ERC Services] [ERC Services OS]
  1979. ,[179D Services] [179D Services OS]
  1980. INTO #SLO
  1981. FROM (
  1982. SELECT CM.CPA_NAME
  1983. ,CM.[Remaining Amount Due to CPA]
  1984. ,pg.Description SLD
  1985. FROM
  1986. (
  1987. SELECT *
  1988. FROM
  1989. #Base) CM
  1990.  
  1991.          LEFT JOIN
  1992.          TE_3E_PROD_CLONE..PracticeGRoup pg on pg.code = CM.SL
  1993.  
  1994. ) p PIVOT
  1995. (SUM([Remaining Amount Due to CPA]) FOR SLD IN ([R&D Services],[ERC Services],[179D Services])) p
  1996.  
  1997.  
  1998.  
  1999. drop table if exists #FAAmts;
  2000.  
  2001. SELECT
  2002.     [CPATop_AccountId]
  2003. ,   [CPATop_Name]
  2004. ,   SUM(ClientPaidLessExpenses) ClientPaidLessExpenses
  2005. ,   SUM(AMountDueToCPA)AMountDueToCPA
  2006. ,   SUM(AmountPaidToCPA) AmountPaidToCPA
  2007. ,   SUM([R&D Services]) [R&D Services]
  2008. ,   SUM([ERC Services])[ERC Services]
  2009. ,   SUM([Other Services])[Other Services]
  2010. ,   SUM(AmountOutStandingToCPA) AmountOutStandingToCPA
  2011. ,   SUM([R&D Services OS]) [R&D Services OS]
  2012. ,   SUM([ERC Services OS])[ERC Services OS]
  2013. ,   SUM([Other Services OS])[Other Services OS]
  2014. ,   SUM(ERCClientPaid)ERCClientPaid
  2015. INTO #FAAmts
  2016. FROM
  2017. (
  2018. SELECT a.*
  2019. ,   [CPATop_AccountId]
  2020. ,   [CPATop_Name]
  2021. ,ROW_NUMBER()OVER(PArtition by a.CPA_Name ORDER BY DIFFERENCE(a.CPA_NAME,CPATop_Name) desc) rn
  2022. FROM
  2023. (
  2024. SELECT
  2025.     a.CPA_Name
  2026. ,   State
  2027. ,   COUNT(Distinct a.Client) NbrClients
  2028.  
  2029. ,   SUM(TRY_CAST(InvoiceAmount as numeric(12,2))) ClientInvoices
  2030. ,   SUM(TRY_CAST(AMOUNTPAIDLESSEXPENSES as numeric(12,2))) ClientPaidLessExpenses
  2031. ,   SUM(TRY_CAST(AMOUNTDUETOCPA as numeric(12,2))) AMountDueToCPA
  2032. ,   SUM(TRY_CAST(AMOUNTPAIDTOCPA as numeric(12,2))) AmountPaidToCPA
  2033. ,   CASE WHEN [ERC Services] is null AND [179D Services] is null AND [R&D Services]>SUM(TRY_CAST(AMOUNTPAIDTOCPA as numeric(12,2))) THEN SUM(TRY_CAST(AMOUNTPAIDTOCPA as numeric(12,2))) ELSE  ([R&D Services]) END [R&D Services]
  2034. ,   CASE WHEN [R&D Services] is null AND [179D Services] is null AND [ERC Services]>SUM(TRY_CAST(AMOUNTPAIDTOCPA as numeric(12,2))) THEN SUM(TRY_CAST(AMOUNTPAIDTOCPA as numeric(12,2))) ELSE  ([ERC Services]) END [ERC Services]
  2035. ,   COALESCE(SUM(TRY_CAST(AMOUNTPAIDTOCPA as numeric(12,2))),0)
  2036.     -(COALESCE(CASE WHEN [ERC Services] is null AND [179D Services] is null AND [R&D Services]>SUM(TRY_CAST(AMOUNTPAIDTOCPA as numeric(12,2))) THEN SUM(TRY_CAST(AMOUNTPAIDTOCPA as numeric(12,2))) ELSE  ([R&D Services]) END,0))
  2037.     -(COALESCE(CASE WHEN [R&D Services] is null AND [179D Services] is null AND [ERC Services]>SUM(TRY_CAST(AMOUNTPAIDTOCPA as numeric(12,2))) THEN SUM(TRY_CAST(AMOUNTPAIDTOCPA as numeric(12,2))) ELSE  ([ERC Services]) END,0))
  2038.     [Other Services]
  2039. ,   CASE WHEN [ERC Services OS] is null AND [179D Services OS] is null AND [R&D Services OS]>SUM(TRY_CAST(REMAININGDUETOCPA as numeric(12,2))) THEN SUM(TRY_CAST(REMAININGDUETOCPA as numeric(12,2))) ELSE  ([R&D Services OS]) END [R&D Services OS]
  2040. ,   CASE WHEN [R&D Services OS] is null AND [179D Services OS] is null AND [ERC Services OS]>SUM(TRY_CAST(REMAININGDUETOCPA as numeric(12,2))) THEN SUM(TRY_CAST(REMAININGDUETOCPA as numeric(12,2))) ELSE  ([ERC Services OS]) END [ERC Services OS]
  2041. ,   COALESCE(SUM(TRY_CAST(REMAININGDUETOCPA as numeric(12,2))),0)
  2042.     -(COALESCE(CASE WHEN [ERC Services OS] is null AND [179D Services OS] is null AND [R&D Services OS]>SUM(TRY_CAST(REMAININGDUETOCPA as numeric(12,2))) THEN SUM(TRY_CAST(REMAININGDUETOCPA as numeric(12,2))) ELSE  ([R&D Services OS]) END,0))
  2043.     -(COALESCE(CASE WHEN [R&D Services OS] is null AND [179D Services OS] is null AND [ERC Services OS]>SUM(TRY_CAST(REMAININGDUETOCPA as numeric(12,2))) THEN SUM(TRY_CAST(REMAININGDUETOCPA as numeric(12,2))) ELSE  ([ERC Services OS]) END,0))
  2044.     [Other Services OS]
  2045. ,   SUM(TRY_CAST(REMAININGDUETOCPA as numeric(12,2)))  AmountOutStandingToCPA
  2046. ,   COUNT(DISTINCT CASE WHEN COALESCE([ERC Services],0) + COALESCE([ERC Services OS],0)>0 THEN Client END) ERCClientPaid
  2047. FROM (
  2048.  
  2049. SELECT Distinct CM.*,COALESCE(MAX(a2.BillingState)OVER(Partition By CPA_Name),MAX(NBP.CPAState)OVER(Partition By CPA_Name),MAX(NBF.CPAState)OVER(Partition By CPA_Name),MAX(a.BillingState)OVER(Partition By CPA_Name),MAX(ad.State COLLATE SQL_Latin1_General_CP1_CI_AS)OVER(Partition By CPA_Name)) State
  2050. FROM
  2051. [FP&A]..CPAMatch CM
  2052.  
  2053. LEFT JOIN
  2054. (SELECT CPAEntity,CPAFirm
  2055. FROM
  2056. TE_3E_PROD_Clone..CPADetails_CCC
  2057. GROUP BY CPAEntity,CPAFirm)
  2058.  cd on cd.CPAEntity = CM.CPAID
  2059.  LEFT JOIN
  2060.  SalesforceClone..account a on a.Name = cd.CPAFirm COLLATE SQL_Latin1_General_CP1_CI_AS
  2061.  LEFT JOIN
  2062.  TE_3E_PROD_Clone..Payee P on P.NAme COLLATE SQL_Latin1_General_CP1_CI_AS = CM.CPA_NAME
  2063.  LEFT JOIN
  2064.  TE_3E_PROD_Clone..Site s on s.SiteIndex = P.CkSite
  2065.  LEFT JOIN
  2066.  TE_3E_PROD_Clone..Address ad on ad.AddrIndex = s.Address
  2067. LEFT JOIN
  2068. (SELECT CPAFirm,CPAState
  2069. FROM
  2070. TE_3E_PROD_Clone.[dbo].[NBI_Import_CPADetails_CCC]
  2071. GROUP BY CPAFirm,CPAState) NBF on NBF.CPAFirm = cd.CPAFirm
  2072. LEFT JOIN
  2073. TE_3E_PROD_Clone..Entity e on e.EntIndex = CM.CPAID
  2074. LEFT JOIN
  2075. (SELECT CPAName,CPAState
  2076. FROM
  2077. TE_3E_PROD_Clone.[dbo].[NBI_Import_CPADetails_CCC]
  2078. GROUP BY CPAName,CPAState
  2079. )  NBP on NBP.CPAName = e.DisplayName
  2080. LEFT JOIN
  2081. TE_3E_PROD_Clone.[dbo].[AG_CPAFirm] cf on cf.CPAFirmName COLLATE SQL_Latin1_General_CP1_CI_AS = CM.CPA_NAME
  2082. LEFT JOIN
  2083. SalesforceClone..account a2 on a2.id = cf.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS
  2084.  
  2085. ) a
  2086. LEFT JOIN
  2087. #SLD SL on SL.CPA_NAME = a.CPA_NAME
  2088. LEFT JOIN
  2089. #SLO SO on SO.CPA_NAME = a.CPA_NAME
  2090. GROUP BY
  2091.     a.CPA_Name
  2092. ,   State
  2093. ,   ([R&D Services])
  2094. ,   ([ERC Services])
  2095. ,   [179D Services]
  2096. ,   ([R&D Services OS])
  2097. ,   ([ERC Services OS])
  2098. ,   [179D Services OS]
  2099. ) a
  2100. JOIN
  2101. #cpahm chm on chm.CPA_NAme = a.CPA_NAME
  2102. )b
  2103. WHERE rn = 1
  2104. GROUP BY
  2105.     [CPATop_AccountId]
  2106. ,   [CPATop_Name]
  2107.  
  2108.  
  2109. drop table if exists #cpafinal;
  2110.  
  2111.        select
  2112.               o.Id [OpportunityId]
  2113.        ,      a.id [AccountId]
  2114.        ,      a.[Name] [AccountName]
  2115.        ,      c.CPA1_AccountId [CPAAccountId]
  2116.        ,      c.CPATop_Name [CPAName]
  2117.        ,      c.[CPATop_AccountId] [CPATop_AccountId]
  2118.        ,      con.[Name] [CPAContact]
  2119.  
  2120.        into #cpafinal
  2121.        from
  2122.               SalesForceClone.dbo.Account a
  2123.        left join
  2124.               SalesForceClone.dbo.Contact con on con.Id = a.CPA_Contact__c
  2125.        join
  2126.            SalesforceClone.dbo.Opportunity o on o.AccountId = a.Id
  2127.        left join
  2128.               #cpah c on c.CPA1_AccountId = COALESCE(a.CPA_Account__c,o.Amending_CPA_Firm_ID__c ,o.Referring_CPA_Firm_ID__c)
  2129.        group by
  2130.               o.Id
  2131.        ,      a.id
  2132.        ,      a.[Name]
  2133.        ,      c.CPA1_AccountId
  2134.        ,      c.CPATop_Name
  2135.        ,      con.[Name]
  2136.        ,      c.[CPATop_AccountId]
  2137.        
  2138.  
  2139.        drop table if exists #IsTalent;
  2140.  
  2141.        SELECT AccountId
  2142.        ,    CASE WHEN Service_Type__c IN ('External Audit','Tax Services','AMS','Business Advisory & Valuation') THEN 1 ELSE 0 END IsTalent
  2143.        into #IsTalent
  2144.        FROM
  2145.        SalesforceClone.dbo.Opportunity
  2146.        WHERE
  2147.        Service_Type__c IN ('External Audit','Tax Services','AMS','Business Advisory & Valuation')
  2148.        GROUP BY
  2149.        AccountId
  2150.        ,    CASE WHEN Service_Type__c IN ('External Audit','Tax Services','AMS','Business Advisory & Valuation') THEN 1 ELSE 0 END
  2151.  
  2152.  
  2153. drop table if exists #Credits;
  2154.  
  2155. select
  2156.        m.[MattIndex]
  2157. ,      m.[Number] [Job_No]
  2158. ,      m.OpportunityID_CCC [OpportunityId]
  2159. ,      c.AccountID_CCC [AccountId]
  2160. ,      m.[DisplayName] [Description]
  2161. ,      m.[Client]
  2162. ,      c.[DisplayName] [Company]
  2163. ,      s.[Code] [State]
  2164. ,      m.[EngSignedDate_CCC] [DateSigned]
  2165. ,      year(m.[EngSignedDate_CCC]) [Year]
  2166. ,      replace(ms.[Description],'CLOSING','Closing') [Status]
  2167. ,      md.[Description] SL
  2168. ,      case
  2169.               when m.MattCategory = 'NEW' then 'New'
  2170.               when m.MattCategory  = 'FU' then 'FU'
  2171.               when et.[Description] = 'New Business' then 'New'
  2172.               when et.[Description] = 'Follow - Up' then 'FU'
  2173.               when et.[Description] = 'Continuation' then 'Continuation'
  2174.               end [New_FU]
  2175. ,     isnull ( coalesce(pc.[FinalCredits],0), 0) [FinalCredit]
  2176. ,     Coalesce(pc.[Total],0) [Total]
  2177. ,     case when md.[PracticeGroup] = 225 then coalesce(pc.[FinalCredits],0) else Coalesce(pc.[Total],0) end [Total2]
  2178. ,      atk.[BD1] [PBD]
  2179. ,      CASE WHEN BDMC.[MattIndex] is not null then 1 else 0 end [StudyCount]
  2180. ,      cpa.[CPAAccountId]
  2181. ,      coalesce(cpa.[CPAName],'Direct') [CPA]
  2182. ,      cpa.[CPAContact] [CPA_Contact]
  2183. ,      case when md.[PracticeGroup] = 225 then 1 else 0 end [isERC]
  2184. ,   case when pc.[FinalCredits]!= 0 then 1 else pc.[FinalCredits] end isFinalCredits
  2185. ,    CASE WHEN BDM.[MattIndex] is not null  then AdjustedWIP else 0 end AdjWIP
  2186. ,   SUM(CASE WHEN BDM.[MattIndex] is not null  then AdjustedWIP else 0 end)OVER(Partition BY m.[Client]) ClientTotalWIP
  2187. ,   [CPATop_AccountId]
  2188.  
  2189.  
  2190. into #Credits
  2191. from
  2192.        TE_3E_PROD_Clone.dbo.Matter m
  2193. LEFT JOIN
  2194. (SELECT BDM.[MattIndex],SUM(AdjustedWIP)AdjustedWIP,OpportunityIDCCC
  2195. FROM
  2196. [FP&A].BDM.BDMasterUnpublished BDM
  2197. WHERE
  2198. BDM.[EngTypeCCC] = 'New'
  2199. GROUP BY BDM.[MattIndex],OpportunityIDCCC) BDM on BDM.[MattIndex] = m.Mattindex
  2200. LEFT JOIN
  2201. (SELECT BDM.[MattIndex],OpportunityIDCCC
  2202. FROM
  2203. [FP&A].BDM.BDMasterUnpublished BDM
  2204. WHERE
  2205. BDM.[EngTypeCCC] = 'New' and BDM.OneTimeAdj = '0'
  2206. GROUP BY BDM.[MattIndex],OpportunityIDCCC) BDMC on BDMC.[MattIndex] = m.Mattindex
  2207. join
  2208.        TE_3E_PROD_Clone.dbo.Client c on c.ClientIndex = m.Client
  2209. left join
  2210.        TE_3E_PROD_Clone.[dbo].[Site] si on si.[SiteIndex] = c.[InvoiceSite]
  2211. left join
  2212.        TE_3E_PROD_Clone.[dbo].[Address] a on si.[Address] = a.[AddrIndex]
  2213. left join
  2214.        TE_3E_PROD_Clone.[dbo].[State] s on a.[State] = s.[Code]
  2215. join
  2216.        TE_3E_PROD_Clone.dbo.MattStatus ms on ms.code = m.MattStatus
  2217. left join
  2218.        TE_3E_PROD_Clone.[dbo].[EngType_CCC] et on et.[Code] = m.[EngType_CCC]
  2219. left join
  2220.        (
  2221.               select
  2222.                      row_number() over(partition by MatterLkUp order by effstart desc, nxStartDate desc, nxEndDate desc) [Rn]
  2223.               ,      PGDetHdr_CCCID
  2224.               ,      MatterLkUp
  2225.               ,     AdjWIP
  2226.               from
  2227.                      TE_3E_PROD_Clone.dbo.PGDetHdr_CCC
  2228.        ) ph on ph.MatterLkUp = m.MattIndex and ph.[Rn] = 1
  2229. left join
  2230.        (
  2231.               select
  2232.                      PGDetHdr
  2233.               ,      sum([FinalCredit]) [FinalCredits]
  2234.              ,       sum([Total]) [Total]
  2235.               from
  2236.                      TE_3E_PROD_Clone.dbo.PGDetChild_CCC
  2237.               group by
  2238.                      PGDetHdr
  2239.        ) pc on pc.PGDetHdr = ph.PGDetHdr_CCCID
  2240. left join
  2241.        (
  2242.               select
  2243.                      row_number() over(partition by md.MatterLkUp order by md.effstart desc, md.nxStartDate desc, md.nxEndDate desc) [Rn]
  2244.               ,      md.MatterLkUp
  2245.               ,      md.[PracticeGroup]
  2246.               ,      pg.[Description]
  2247.               from
  2248.                      TE_3E_PROD_Clone.dbo.MattDate md
  2249.               left join
  2250.                      TE_3E_PROD_Clone.dbo.PracticeGroup pg on pg.code = md.PracticeGroup
  2251.        ) md on md.MatterLkUp = m.MattIndex and md.[Rn] = 1
  2252. left join
  2253.        (
  2254.               select
  2255.                      row_number() over (partition by atk.[MatterLkUp] order by atk.[EffStart] desc) [Rn]
  2256.               ,      atk.[MatterLkUp]
  2257.               ,      atk.[BDTkpr1]
  2258.               ,      [FP&A].[dbo].[fGetFirstNameLastName](tk.DisplayName) [BD1]
  2259.               from
  2260.                      TE_3E_PROD_Clone.[dbo].[AssociatedTkprs_CCC] atk
  2261.               left join
  2262.                      TE_3E_PROD_Clone.dbo.Timekeeper tk on tk.TkprIndex = atk.BDTkpr1
  2263.        ) atk on atk.[MatterLkUp] = m.[MattIndex] and atk.[rn] = 1
  2264. left join
  2265.        #cpafinal cpa on cpa.OpportunityId = m.OpportunityID_CCC collate SQL_Latin1_General_CP1_CI_AS
  2266. where
  2267.     ms.[Description] not in ('Cancel NoEL Received','Cancelled - Duplicate')
  2268.     and md.[Description] not like '%-Z%'
  2269.  
  2270.  
  2271.  
  2272.  
  2273.  
  2274. drop table if exists [FP&A]..CPAMatchandCredits;
  2275.  
  2276. SELECT
  2277.     c.ParentCPA
  2278. ,   a.BillingState State
  2279. ,   a.BillingCity City
  2280. ,   a.BillingPostalCode CPAZipCode
  2281. ,   COALESCE(a.Alliance__c,'Direct') Alliance
  2282. ,   bd.Name BD
  2283. ,   rd.Name RD
  2284. ,   credits.NoofClients
  2285. ,   Credits.StudyCount
  2286. ,   FA.ClientPaidLessExpenses
  2287. ,   FA.AMountDueToCPA TotalAmountDuetoCPA
  2288. ,   FA.AmountPaidToCPA TotalPaidtoCPA
  2289. ,   FA.AmountOutStandingToCPA TotalAmountOutsandingtoCPA
  2290. ,   COALESCE(FA.[ERC Services],0) + COALESCE(FA.[ERC Services OS],0) ERCAmountDueToCPA
  2291. ,   COALESCE(FA.[ERC Services],0) ERCPaidToCPA
  2292. ,   COALESCE(FA.[ERC Services OS],0) ERCAmountOutstandingToCPA
  2293. ,   COALESCE(FA.[R&D Services],0) + COALESCE(FA.[R&D Services OS],0) [R&DAmountDueToCPA]
  2294. ,   COALESCE(FA.[R&D Services],0) [R&DPaidToCPA]
  2295. ,   COALESCE(FA.[R&D Services OS],0) [R&DAmountOutstandingToCPA]
  2296. ,   COALESCE(FA.[Other Services],0) + COALESCE(FA.[Other Services OS],0) OtherAmountDueToCPA
  2297. ,   COALESCE(FA.[Other Services],0) OtherPaidToCPA
  2298. ,   COALESCE(FA.[Other Services OS],0) OtherAmountOutstandingToCPA
  2299. ,   credits.AdjWIP [TotalAdjustedWIP]
  2300. ,   credits.NoofBigClients
  2301. ,   TotalCreditsDElivered
  2302. ,   NoofERCClients
  2303. ,   CASE WHEN ERCClientPaid>NoofERCClients THEN NoofERCClients ELSE ERCClientPaid END ERCClientPaid
  2304. ,   ERCCreditsDElivered
  2305. ,   bderc.Name ERCBD
  2306. ,   rderc.Name ERCRD
  2307. ,   RDNew
  2308. ,   RDFU
  2309. ,   ERC
  2310. ,   CASE WHEN IsTalent = 1 THEN 'Yes' ELSE 'No' END IsTalent
  2311. INTO [FP&A]..CPAMatchandCredits
  2312. FROM
  2313. (SELECT CPATop_Name ParentCPA
  2314.     ,CPATop_AccountId ParentCPAId
  2315.     FROM
  2316.     #cpah c
  2317.     GROUP BY
  2318.      CPATop_Name
  2319.     ,CPATop_AccountId) c
  2320. JOIN
  2321. SalesforceClone..Account a on a.id = c.ParentCPAId
  2322. JOIN
  2323. SalesforceClone..[User] bd on bd.id = a.OwnerId
  2324. LEFT JOIN
  2325. SalesforceClone..[User] rd on rd.id = a.caller__c
  2326. LEFT JOIN
  2327. (SELECT [CPATop_AccountId]
  2328. ,   COUNT(DISTINCT AccountId) NoofClients
  2329. ,   COUNT(DISTINCT CASE WHEN ClientTotalWIP>100000 THEN AccountId END) NoofBigClients
  2330. ,   SUM(AdjWIP) AdjWIP
  2331. ,   SUM([FinalCredit]) TotalCreditsDElivered
  2332. ,   COUNT(DISTINCT CASE WHEN isERC = 1 THEN AccountId END) NoofERCClients
  2333. ,   SUM(DISTINCT CASE WHEN isERC = 1 THEN [FinalCredit] END) ERCCreditsDElivered
  2334. ,   SUM(StudyCount)StudyCount
  2335.  
  2336. FROM
  2337. #Credits
  2338. GROUP BY
  2339. [CPATop_AccountId]
  2340. ) Credits on credits.[CPATop_AccountId] = c.ParentCPAId
  2341. LEFT JOIN
  2342. #FAAmts FA on FA.CPATop_AccountId = c.ParentCPAId
  2343. LEFT JOIN
  2344. SalesforceClone..[User] bderc on bderc.id = a.[Technical_Director_ERC__c]
  2345. LEFT JOIN
  2346. SalesforceClone..[User] rderc on rderc.id = a.[ERC_Relationship_Director__c]
  2347. LEFT JOIN (
  2348. SELECT *
  2349. FROM
  2350. (
  2351. SELECT AccountID
  2352. ,   Case
  2353.         when EngagementType = 150 AND PracticeGroup = 110 THEN 'RDNew'
  2354.         WHEN EngagementType = 125 AND PracticeGroup = 110 THEN 'RDFU'
  2355.         WHEN PracticeGroup = 225 THEN 'ERC'
  2356.         ELSE 'Other'
  2357.         END Type
  2358. ,   ACFDD.FeePercentage
  2359. FROM
  2360. [TE_3E_PROD_Clone].dbo.[AG_CPAFirm] ACF
  2361. JOIN
  2362. [TE_3E_PROD_Clone].[dbo].[AG_CPAFirmDate] ACFD on ACF.CPAFirmIndex = ACFD.AG_CPAFirmLkUp and ACFD.NxEndDate  = '99991231' and ACFD.NxStartDate != '99991231'
  2363. JOIN
  2364. [TE_3E_PROD_Clone].[dbo].[AG_CPAFirmDateDet] ACFDD on ACFDD.CPAFirmDate = ACFD.AG_CPAFirmDateID
  2365. WHERE
  2366.  PracticeGroup IN (110,225)
  2367. )a
  2368. PIVOT (MAX(FeePercentage) FOR TYpe in ([RDNew],[RDFU],[ERC]))p
  2369. ) Perc on Perc.AccountID COLLATE SQL_Latin1_General_CP1_CI_AS = c.ParentCPAId
  2370. LEFT JOIN
  2371. #IsTalent T on T.AccountId = c.ParentCPAId
  2372.  
  2373. END
  2374.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement