Advertisement
syntax53

EZRouting PowerQuery v2

Dec 13th, 2024
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 10.54 KB | Source Code | 0 0
  1. <queries>
  2.     <query name="org.sdst.ezrouting_export" flattened="true">
  3.         <summary>SDST data export for EZ Routing system</summary>
  4.         <args></args>
  5.         <columns>
  6.             <column column="students.student_number">01_student_number</column>
  7.             <column column="students.last_name">02_last_name</column>
  8.             <column column="students.first_name">03_first_name</column>
  9.             <column column="students.middle_name">04_middle_name</column>
  10.             <column column="students.last_name">05_Race</column>
  11.             <column column="students.gender">06_gender</column>
  12.             <column column="students.last_name">07_dob</column>
  13.             <column column="students.last_name">08_schoolid</column>
  14.             <column column="students.grade_level">09_grade_level</column>
  15.             <column column="students.street">10_street</column>
  16.             <column column="students.city">11_city</column>
  17.             <column column="students.state">12_state</column>
  18.             <column column="students.zip">13_zip</column>
  19.             <column column="students.mailing_street">14_mailing_street</column>
  20.             <column column="students.mailing_city">15_mailing_city</column>
  21.             <column column="students.mailing_state">16_mailing_state</column>
  22.             <column column="students.mailing_zip">17_mailing_zip</column>
  23.             <column column="students.last_name">18_contact1_name</column>
  24.             <column column="students.last_name">19_contact1_relation</column>
  25.             <column column="students.last_name">20_contact1_phone1</column>
  26.             <column column="students.last_name">21_contact1_phonetype1</column>
  27.             <column column="students.last_name">22_contact1_phone2</column>
  28.             <column column="students.last_name">23_contact1_phonetype2</column>
  29.             <column column="students.last_name">24_contact1_phone3</column>
  30.             <column column="students.last_name">25_contact1_phonetype3</column>
  31.             <column column="students.last_name">26_contact1_email</column>
  32.             <column column="students.last_name">27_contact2_name</column>
  33.             <column column="students.last_name">28_contact2_relation</column>
  34.             <column column="students.last_name">29_contact2_phone1</column>
  35.             <column column="students.last_name">30_contact2_phonetype1</column>
  36.             <column column="students.last_name">31_contact2_phone2</column>
  37.             <column column="students.last_name">32_contact2_phonetype2</column>
  38.             <column column="students.last_name">33_contact2_phone3</column>
  39.             <column column="students.last_name">34_contact2_phonetype3</column>
  40.             <column column="students.last_name">35_contact2_email</column>
  41.             <column column="students.last_name">36_contact3_name</column>
  42.             <column column="students.last_name">37_contact3_relation</column>
  43.             <column column="students.last_name">38_contact3_phone1</column>
  44.             <column column="students.last_name">39_contact3_phonetype1</column>
  45.             <column column="students.last_name">40_contact3_phone2</column>
  46.             <column column="students.last_name">41_contact3_phonetype2</column>
  47.             <column column="students.last_name">42_contact3_phone3</column>
  48.             <column column="students.last_name">43_contact3_phonetype3</column>
  49.             <column column="students.last_name">44_contact3_email</column>
  50.             <column column="students.last_name">45_contact4_name</column>
  51.             <column column="students.last_name">46_contact4_relation</column>
  52.             <column column="students.last_name">47_contact4_phone1</column>
  53.             <column column="students.last_name">48_contact4_phonetype1</column>
  54.             <column column="students.last_name">49_contact4_phone2</column>
  55.             <column column="students.last_name">50_contact4_phonetype2</column>
  56.             <column column="students.last_name">51_contact4_phone3</column>
  57.             <column column="students.last_name">52_contact4_phonetype3</column>
  58.             <column column="students.last_name">53_contact4_email</column>
  59.             <column column="students.last_name">54_EntryDate</column>
  60.             <column column="students.last_name">55_ExitDate</column>
  61.             <column column="students.last_name">56_sped</column>
  62.         </columns>
  63.         <sql>
  64.             <![CDATA[
  65.                 SELECT
  66.                     stu.student_number,
  67.                     stu.last_name,
  68.                     CASE
  69.                         WHEN scf.PSCORE_LEGAL_FIRST_NAME IS NULL THEN stu.first_name
  70.                         ELSE scf.PSCORE_LEGAL_FIRST_NAME
  71.                     END first_name,
  72.                     stu.middle_name,
  73.                     CASE
  74.                         WHEN stu.FedEthnicity = 1 THEN 'H'
  75.                         WHEN (SELECT COUNT(0) FROM studentrace WHERE studentrace.studentid = stu.id) > 1 THEN 'M'
  76.                         ELSE (SELECT RaceCD FROM studentrace WHERE studentrace.studentid = stu.id)
  77.                     END AS Race,
  78.                     stu.gender,
  79.                     to_char(stu.dob, 'MM/DD/YYYY') AS dob,
  80.                     CASE
  81.                         WHEN to_char(stu.schoolid) = '3' THEN nvl(ps.School_Code, 'PRIVATE_UNKNOWN')
  82.                         ELSE to_char(stu.schoolid)
  83.                     END schoolid,
  84.                     stu.grade_level,
  85.                     stu.street,
  86.                     stu.city,
  87.                     stu.state,
  88.                     stu.zip,
  89.                     stu.mailing_street,
  90.                     stu.mailing_city,
  91.                     stu.mailing_state,
  92.                     stu.mailing_zip,
  93.                     contacts.contact1_name,
  94.                     contacts.contact1_relation,
  95.                     contacts.contact1_phone1,
  96.                     contacts.contact1_phonetype1,
  97.                     contacts.contact1_phone2,
  98.                     contacts.contact1_phonetype2,
  99.                     contacts.contact1_phone3,
  100.                     contacts.contact1_phonetype3,
  101.                     contacts.contact1_email,
  102.                     contacts.contact2_name,
  103.                     contacts.contact2_relation,
  104.                     contacts.contact2_phone1,
  105.                     contacts.contact2_phonetype1,
  106.                     contacts.contact2_phone2,
  107.                     contacts.contact2_phonetype2,
  108.                     contacts.contact2_phone3,
  109.                     contacts.contact2_phonetype3,
  110.                     contacts.contact2_email,
  111.                     contacts.contact3_name,
  112.                     contacts.contact3_relation,
  113.                     contacts.contact3_phone1,
  114.                     contacts.contact3_phonetype1,
  115.                     contacts.contact3_phone2,
  116.                     contacts.contact3_phonetype2,
  117.                     contacts.contact3_phone3,
  118.                     contacts.contact3_phonetype3,
  119.                     contacts.contact3_email,
  120.                     contacts.contact4_name,
  121.                     contacts.contact4_relation,
  122.                     contacts.contact4_phone1,
  123.                     contacts.contact4_phonetype1,
  124.                     contacts.contact4_phone2,
  125.                     contacts.contact4_phonetype2,
  126.                     contacts.contact4_phone3,
  127.                     contacts.contact4_phonetype3,
  128.                     contacts.contact4_email,
  129.                     to_char(stu.EntryDate, 'MM/DD/YYYY') AS EntryDate,
  130.                     CASE
  131.                         WHEN stu.ExitDate < t_DistrictYr.LastDay THEN to_char(stu.ExitDate, 'MM/DD/YYYY')
  132.                         ELSE ''
  133.                     END ExitDate,
  134.                     CASE
  135.                         WHEN sped.IS_SPED_Student_YN = '1' THEN 'Y'
  136.                         ELSE 'N'
  137.                     END sped
  138.                 FROM
  139.                     students stu
  140.                 LEFT JOIN
  141.                     StudentCoreFields scf ON scf.studentsdcid = stu.dcid
  142.                 LEFT JOIN
  143.                     S_PA_STU_X sped ON sped.studentsdcid = stu.dcid
  144.                 LEFT JOIN
  145.                     U_Private_School ps ON ps.studentsdcid = stu.dcid
  146.                 LEFT JOIN
  147.                     Terms t_DistrictYr ON t_DistrictYr.SchoolId = 0 AND t_DistrictYr.FirstDay <= SYSDATE AND t_DistrictYr.LastDay >= SYSDATE AND t_DistrictYr.IsyearRec = 1
  148.                 LEFT JOIN
  149.                     Terms t_SchoolYr ON t_SchoolYr.SchoolId = stu.SchoolId AND t_SchoolYr.YearId = t_DistrictYr.YearId AND t_SchoolYr.IsyearRec = 1
  150.                 LEFT OUTER JOIN (
  151.                     SELECT
  152.                         *
  153.                     FROM
  154.                         (
  155.                             SELECT
  156.                                 sca.studentdcid,
  157.                                 row_number() over (
  158.                                     PARTITION BY sca.studentdcid
  159.                                     ORDER BY sca.contactpriorityorder
  160.                                 ) R,
  161.                                 nvl(
  162.                                     trim(
  163.                                         pers.firstname || ' ' || pers.lastname
  164.                                     ),
  165.                                     chr(91) || 'NO NAME' || chr(93)
  166.                                 ) name,
  167.                                 rel.code relation,
  168.                                 personphonenumber.phone1,
  169.                                 personphonenumber.phone2,
  170.                                 personphonenumber.phone3,
  171.                                 personphonetype.phonetype1,
  172.                                 personphonetype.phonetype2,
  173.                                 personphonetype.phonetype3,
  174.                                 personemail.email
  175.                             FROM
  176.                                 studentcontactassoc sca
  177.                                 INNER JOIN studentcontactdetail scd ON sca.studentcontactassocid = scd.studentcontactassocid
  178.                                     AND nvl(scd.startdate, SYSDATE) <= SYSDATE
  179.                                     AND nvl(scd.enddate, SYSDATE) >= SYSDATE
  180.                                     AND (
  181.                                         scd.iscustodial = 1
  182.                                         OR scd.liveswithflg = 1
  183.                                     )
  184.                                 LEFT OUTER JOIN codeset rel ON sca.currreltypecodesetid = rel.codesetid
  185.                                 LEFT OUTER JOIN person pers ON sca.personid = pers.id
  186.                                 LEFT OUTER JOIN (
  187.                                     SELECT
  188.                                         *
  189.                                     FROM
  190.                                         (
  191.                                             SELECT
  192.                                                 personphonenumberassoc1.personid,
  193.                                                 personphonenumberassoc1.phonenumberasentered phonenumber,
  194.                                                 row_number() over (
  195.                                                     PARTITION BY personphonenumberassoc1.personid
  196.                                                     ORDER BY personphonenumberassoc1.phonenumberpriorityorder
  197.                                                 ) R
  198.                                             FROM
  199.                                                 personphonenumberassoc personphonenumberassoc1
  200.                                         ) pivot (
  201.                                             MAX(phonenumber) FOR R IN (1 phone1, 2 phone2, 3 phone3)
  202.                                         )
  203.                                 ) personphonenumber ON pers.id = personphonenumber.personid
  204.                                 LEFT OUTER JOIN (
  205.                                     SELECT
  206.                                         *
  207.                                     FROM
  208.                                         (
  209.                                             SELECT
  210.                                                 personphonenumberassoc2.personid,
  211.                                                 phonetype.code phonetype,
  212.                                                 row_number() over (
  213.                                                     PARTITION BY personphonenumberassoc2.personid
  214.                                                     ORDER BY personphonenumberassoc2.phonenumberpriorityorder
  215.                                                 ) R
  216.                                             FROM
  217.                                                 personphonenumberassoc personphonenumberassoc2
  218.                                                 LEFT OUTER JOIN codeset phonetype ON personphonenumberassoc2.phonetypecodesetid = phonetype.codesetid
  219.                                         ) pivot (
  220.                                             MAX(phonetype) FOR R IN (1 phonetype1, 2 phonetype2, 3 phonetype3)
  221.                                         )
  222.                                 ) personphonetype ON pers.id = personphonetype.personid
  223.                                 LEFT OUTER JOIN (
  224.                                     SELECT
  225.                                         *
  226.                                     FROM
  227.                                         (
  228.                                             SELECT
  229.                                                 pea.personid,
  230.                                                 ea.EmailAddress email,
  231.                                                 row_number() over (
  232.                                                     partition BY pea.personid
  233.                                                     order by pea.EmailAddressPriorityOrder
  234.                                                 ) R
  235.                                             FROM
  236.                                                 PersonEmailAddressAssoc pea
  237.                                             RIGHT JOIN
  238.                                                 EMAILADDRESS ea ON ea.EMAILADDRESSID = pea.EMAILADDRESSID
  239.                                         ) pivot (
  240.                                             MAX(email) FOR R IN (1 email)
  241.                                         )
  242.                                 ) personemail ON pers.id = personemail.personid
  243.                         ) pivot (
  244.                             MAX(name) name,
  245.                             MAX(relation) relation,
  246.                             MAX(phone1) phone1,
  247.                             MAX(phone2) phone2,
  248.                             MAX(phone3) phone3,
  249.                             MAX(phonetype1) phonetype1,
  250.                             MAX(phonetype2) phonetype2,
  251.                             MAX(phonetype3) phonetype3,
  252.                             MAX(email) email FOR R IN (1 contact1, 2 contact2, 3 contact3, 4 contact4)
  253.                         )
  254.                 ) contacts ON stu.dcid = contacts.studentdcid
  255.                 WHERE
  256.                     (stu.enroll_status = 0 OR stu.enroll_status = 2) AND stu.ExitDate > t_DistrictYr.FirstDay
  257.                 ORDER BY
  258.                     stu.lastfirst
  259.             ]]>
  260.         </sql>
  261.     </query>
  262. </queries>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement