Thanks Jason,
Nice output and the advantage is you do not have to join to the resource
table _orgunitstructure. It is quite a complex query though, but still a
nice example of using arrays and the path column.
Thanks
Ant


On 11 January 2017 at 07:18, Jason Pickering <[email protected]>
wrote:

> Here is another piece of SQL which will transform the "path" to names.
>
> You can then join this clause with your organisation unit table (or
> whatever) on the organisationunitid property. It presents all names in a
> single column, as opposed to the multiple columns in Ant's example
>
> SELECT z.organisationunitid,
> array_to_string(array_agg(z.name
> ORDER BY z.rn),'/') AS path
> FROM
> (SELECT y.organisationunitid,
> ou.name,
> y.elem,
> y.rn
> FROM organisationunit ou
> INNER JOIN
> (SELECT *,
> x.path[x.rn] AS elem
> FROM
> (SELECT * ,
> generate_subscripts(arr.path,1) AS rn
> FROM
> (SELECT organisationunitid,
> string_to_array(substring(path
> FROM 2), '/') AS path
> FROM organisationunit) arr) x) y ON y.elem = ou.uid) z
> GROUP BY organisationunitid;
>
> Regards,
> Jason
>
>
> On Wed, Jan 11, 2017 at 6:14 AM, Ant Snyman <[email protected]> wrote:
>
>> ....I should also add that by changing the where clause you can use this
>> code for any level, for example if you change it to:
>>
>> where ous.level = 6 you will only get the structure for your level 6
>> orgunits
>>
>> Regards
>>
>> Ant Snyman
>>
>>
>> On 11 January 2017 at 07:05, Ant Snyman <[email protected]> wrote:
>>
>>> Hi Tantely,
>>>
>>> Try the code below. I normally exclude OU1 in the list because that is
>>> generally the country code and just makes the report even more wide.
>>>
>>> Regards
>>>
>>> Ant Snyman
>>>
>>>
>>> SELECT ous.level,
>>> ou2.name as ou2_name, ou2.shortname as ou2_shortnamme, ou2.uid as
>>> ou2_uid, ou2.code as ou2_code, ou2.organisationunitid as
>>> ou2_organisationunitid,
>>> ou3.name as ou3_name, ou3.shortname as ou3_shortnamme, ou3.uid as
>>> ou3_uid, ou3.code as ou3_code, ou3.organisationunitid as
>>> ou3_organisationunitid,
>>> ou4.name as ou4_name, ou4.shortname as ou4_shortnamme, ou4.uid as
>>> ou4_uid, ou4.code as ou4_code, ou4.organisationunitid as
>>> ou4_organisationunitid,
>>> ou5.name as ou5_name, ou5.shortname as ou5_shortnamme, ou5.uid as
>>> ou5_uid, ou5.code as ou5_code, ou5.organisationunitid as
>>> ou5_organisationunitid,
>>> ou6.name as ou6_name, ou6.shortname as ou6_shortnamme, ou6.uid as
>>> ou6_uid, ou6.code as ou6_code, ou6.organisationunitid as
>>> ou6_organisationunitid
>>> FROM organisationunit ou
>>> INNER JOIN _orgunitstructure ous ON ou.organisationunitid =
>>> ous.organisationunitid
>>> LEFT OUTER JOIN organisationunit ou2 on ous.idlevel2 =
>>> ou2.organisationunitid
>>> LEFT OUTER JOIN organisationunit ou3 on ous.idlevel3 =
>>> ou3.organisationunitid
>>> LEFT OUTER JOIN organisationunit ou4 on ous.idlevel4 =
>>> ou4.organisationunitid
>>> LEFT OUTER JOIN organisationunit ou5 on ous.idlevel5 =
>>> ou5.organisationunitid
>>> LEFT OUTER JOIN organisationunit ou6 on ous.idlevel6 =
>>> ou6.organisationunitid
>>> where ous.level > 1
>>> order by ous.level, ou2.name, ou3.name, ou4.name, ou5.name, ou6.name
>>>
>>>
>>>
>>>
>>>
>>>
>>> On 10 January 2017 at 23:56, Raminosoa Rabemanantsoa, Tantely <
>>> [email protected]> wrote:
>>>
>>>> Dear Community,
>>>>
>>>> I am trying to output a list of all the orgUnits from the SQLView
>>>> (DHIS2 2.24). I would like to have all the information of all the levels of
>>>> the orgUnits for each of the  6 levels implemented. I would like to have a
>>>> result in the following form:
>>>>
>>>> orgUnitName (level6), orgUnitName (level5), orgUnitName (level4),
>>>> orgUnitName (level3), orgUnitName (level2), orgUnitName (level1)
>>>>
>>>> I have used the following code to output all the information of the
>>>> level 6:
>>>>
>>>> SELECT organisationunit.organisationunitid, organisationunit.uid,
>>>> organisationunit.code, organisationunit.name,
>>>> organisationunit.shortname FROM public.organisationunit,
>>>> public._orgunitstructure WHERE organisationunit.organisationunitid =
>>>> _orgunitstructure.idlevel6 AND organisationunit.code is not null;
>>>>
>>>>
>>>> How should I update this code in order to pull out the desired output?
>>>>
>>>> Thank you for your support!
>>>>
>>>> Best,
>>>>
>>>> Tantely
>>>>
>>>>
>>>> *This message and its attachments are confidential and solely for the
>>>> intended recipients. If received in error, please delete them and notify
>>>> the sender via reply e-mail immediately.*
>>>> _______________________________________________
>>>> Mailing list: https://launchpad.net/~dhis2-users
>>>> Post to     : [email protected]
>>>> Unsubscribe : https://launchpad.net/~dhis2-users
>>>> More help   : https://help.launchpad.net/ListHelp
>>>>
>>>>
>>>
>>>
>>> --
>>>
>>> *Ant Snyman*
>>>
>>> *Cell: 0824910449 <08-249%20104%2049>*
>>>
>>> *Landline: 028 2713242*
>>>
>>>
>>> Health Information Systems Program - SA
>>>
>>
>>
>>
>> --
>>
>> *Ant Snyman*
>>
>> *Cell: 0824910449 <08-249%20104%2049>*
>>
>> *Landline: 028 2713242*
>>
>>
>> Health Information Systems Program - SA
>>
>> *This message and any attachments are subject to a disclaimer published
>> at http://www.hisp.org/policies.html#comms_disclaimer
>> <http://www.hisp.org/policies.html#comms_disclaimer>.  Please read the
>> disclaimer before opening any attachment or taking any other action in
>> terms of this electronic transmission.  If you cannot access the
>> disclaimer, kindly send an email to [email protected]
>> <[email protected]> and a copy will be provided to you. By replying to
>> this e-mail or opening any attachment you agree to be bound by the
>> provisions of the disclaimer.*
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~dhis2-users
>> Post to     : [email protected]
>> Unsubscribe : https://launchpad.net/~dhis2-users
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>
>
> --
> Jason P. Pickering
> email: [email protected]
> tel:+46764147049 <+46%2076%20414%2070%2049>
>



-- 

*Ant Snyman*

*Cell: 0824910449*

*Landline: 028 2713242*


Health Information Systems Program - SA

-- 


*This message and any attachments are subject to a disclaimer published at 
http://www.hisp.org/policies.html#comms_disclaimer 
<http://www.hisp.org/policies.html#comms_disclaimer>.  Please read the 
disclaimer before opening any attachment or taking any other action in 
terms of this electronic transmission.  If you cannot access the 
disclaimer, kindly send an email to [email protected] 
<[email protected]> and a copy will be provided to you. By replying to 
this e-mail or opening any attachment you agree to be bound by the 
provisions of the disclaimer.*
_______________________________________________
Mailing list: https://launchpad.net/~dhis2-users
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~dhis2-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to