52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
| WITH
 | |
| pool AS (
 | |
|     SELECT
 | |
|         substr(a.v6part,1,3) "family" 
 | |
|         ,substr(a.v6part,1,8) mold 
 | |
|         ,a.v6part part
 | |
|         ,COALESCE(m.avmajg,p.awmajg) majg
 | |
|         ,COALESCE(m.avming,p.awming) ming
 | |
|         ,COALESCE(m.avmajs,p.awmajs) majs
 | |
|         ,COALESCE(m.avmins,p.awmins) mins
 | |
|     FROM
 | |
|         lgdat.stka a
 | |
|         LEFT OUTER JOIN lgdat.stkmm m ON
 | |
|             m.avpart = v6part
 | |
|         LEFT OUTER JOIN lgdat.stkmp p ON
 | |
|             p.awpart = a.v6part
 | |
|     WHERE
 | |
|         COALESCE(awgled, avgled) = '1RE'
 | |
|         AND v6stat = 'A'
 | |
|         --and avmajg = '910'
 | |
|     GROUP BY
 | |
|         a.v6part
 | |
|         ,COALESCE(m.avmajg,p.awmajg)
 | |
|         ,COALESCE(m.avming,p.awming)
 | |
|         ,COALESCE(m.avmajs,p.awmajs)
 | |
|         ,COALESCE(m.avmins,p.awmins)
 | |
| )
 | |
| ,llist AS (
 | |
|     SELECT
 | |
|         family
 | |
|         ,mold
 | |
|         ,min(part) part
 | |
|         ,jsonb_agg(majg) majg
 | |
|         ,jsonb_agg(ming) ming
 | |
|         ,jsonb_agg(majs) majs
 | |
|         ,jsonb_agg(mins) mins
 | |
|     FROM
 | |
|         pool
 | |
|     GROUP BY
 | |
|         family
 | |
|         ,mold
 | |
| )
 | |
| SELECT
 | |
|     family
 | |
|     ,mold
 | |
|     ,part
 | |
|     ,(SELECT jsonb_agg(x.e) FROM (SELECT DISTINCT a.e FROM jsonb_array_elements(llist.majg) a(e)) x) majg
 | |
|     ,(SELECT jsonb_agg(x.e) FROM (SELECT DISTINCT a.e FROM jsonb_array_elements(llist.ming) a(e)) x) ming
 | |
|     ,(SELECT jsonb_agg(x.e) FROM (SELECT DISTINCT a.e FROM jsonb_array_elements(llist.majs) a(e)) x) majs
 | |
|     ,(SELECT jsonb_agg(x.e) FROM (SELECT DISTINCT a.e FROM jsonb_array_elements(llist.mins) a(e)) x) mins
 | |
| FROM
 | |
|     llist |