Oracle
 sql >> Base de données >  >> RDS >> Oracle

colonnes dans oracle pivot

Pour trier les enregistrements, vous pouvez ajouter ce qui suit à la fin de votre sql

ORDER BY TO_DATE('01/'||month||'/'||year,'dd/mm/yyyy') 

Remarque :Les noms des colonnes pivot sont sensibles à la casse, vous devez donc les citer

voici la requête complète, en sélectionnant uniquement les colonnes dont vous avez besoin :

 SELECT mnth_txt,"Omsk_CNT","Omsk_SM","Novosibirsk_CNT",
        "Novosibirsk_SM","Orenburg_CNT","Orenburg_SM" 
 FROM
 (
 SELECT *
 FROM (     
  SELECT 1 cnt, 2 sm, '55' name, 12 month, 2011 year, '12 2011' mnth_txt FROM DUAL UNION ALL     
  SELECT 1 cnt, 2 sm, '54' name, 11 month, 2011 year, '11 2011' mnth_txt FROM DUAL UNION ALL    
  SELECT 1 cnt, 2 sm, '55' name, 11 month, 2011 year, '11 2011' mnth_txt FROM DUAL UNION ALL     
  SELECT 1 cnt, 2 sm, '54' name, 12 month, 2011 year, '12 2011' mnth_txt FROM DUAL UNION ALL     
  SELECT 1 cnt, 2 sm, '55' name, 12 month, 2011 year, '12 2011' mnth_txt FROM DUAL UNION ALL     
  SELECT 1 cnt, 2 sm, '56' name, 12 month, 2010 year, '12 2010' mnth_txt FROM DUAL   ) 
  PIVOT ( SUM(cnt) cnt, SUM(sm) sm     
          FOR NAME IN             
          ( '55' AS "Omsk",'54' AS "Novosibirsk", '56' AS "Orenburg" ) 
        )
  ORDER BY TO_DATE('01/'||month||'/'||year,'dd/mm/yyyy')         
 )