-1
votes

Comment ajouter des résultats avec le même ID dans le développeur SQL?

développeur Oracle SQL: J'ai un jeu de données, il y a des identifiants qui ne sont pas uniques. Certains de ces identifiants ont une date d'annulation. Je voudrais ajouter la date d'annulation aux lignes avec le même identifiant. Exemple:

product ; cancellation;   cancelled;

a          null           23-01-2019 
b          12-01-2019     12-01-2019 
c          null           null 
d          null           null 
a          23-01-2019     23-01-2019 
b          null           12-01-2019


0 commentaires

4 Réponses :


0
votes

Vous pouvez essayer ceci:

SELECT          prod.product,
                prod.cancellation,
                canc.cancellation AS cancelled
FROM            my_table prod
LEFT OUTER JOIN my_table canc
             ON prod.product = canc.product
            AND canc.cancellation IS NOT NULL;


0 commentaires

0
votes

Vous pouvez utiliser une fonction de fenêtre dans un SELECT CODE>:

update t
    set cancelled = (select max(t2.cancellation)
                     from t t2
                     where t2.product = t.product
                    )
    where exists (select 1
                  from t t2
                  where t2.product = t.product and
                        t2.cancellation is not null
                 );


0 commentaires

0
votes

Si je vous ai bien compris, je le ferais comme ceci:

ALTER TABLE your_first_table 
ADD cancelled DATE;

CREATE TABLE your_temp_table(PRODUCT, CANCELLATION)
AS
SELECT PRODUCT, CANCELLATION 
FROM your_first_table ;

UPDATE your_first_table A 
SET cancelled  = (SELECT CANCELATION 
                  FROM your_temp_table B 
                  WHERE B.PRODUCT  = A.PRODUCT 
                  AND A.CANCELLATION IS NOT NULL);


0 commentaires

0
votes

Vous pouvez utiliser fusion instruction: xxx

acclamations !! / p>


0 commentaires