2017-03-17 4 views
0

J'ai une fonction (sae_rel_data()) qui renvoie un résultat similaire à celui affiché dans l'image. J'essaye de renvoyer le résultat comme table event_crf_id, description, valeur, CBID à la place. Donc je devrais identifier la valeur CBID et assigner cette valeur à toutes les autres lignes qui ont le même evet_crf_id dans une autre colonne appelée CBID.Utilisation de l'analyse croisée et ajout d'une nouvelle valeur à une colonne dans postgresql

Par exemple CBID = 60051 a event_crf_id = 444

event_crf_id; description;  value;   CBID 
    444;   "CBID";   "60051";   "60051" 
    444;   "Month";   "09";   "60051" 
    444;   "Day";    "27";   "60051" 
    444;   "Year";   "2016";   "60051" 
... 

Comment peut-il être fait? J'utilise postgresql

enter image description here

+0

put définition de fonction au lieu de cette grande capture d'écran. vous devez définir une colonne supplémentaire en retour définie en bref. –

Répondre

0

j'ai pu obtenir le résultat que je voulais en utilisant briser mon code et de sauver des portions de celui-ci en fonction, puis l'application jointure interne

SELECT cbid, description, value FROM (
    SELECT test.event_crf_id, description, test.value, id_table.cbi FROM sae_rel_data() test 
    INNER JOIN (SELECT event_crf_id, value as cbid FROM sae_rel_data() where description='CBID') id_table 
    ON id_table.event_crf_id=test.event_crf_id)relevant