SQL sprawdzający różnice między tabelami - update

0

Hej,

mam 2 tabele w dwóch różnych bazach danych i chcę sprawdzić jakie były różnice między nimi.
W załączeniu.

Mam już sql'a, który sprawdza co było dodane:

SELECT Current.*
FROM [Current] LEFT JOIN Previous ON Current.Order= Previous.Order
WHERE (((Previous.Order) Is Null));

co było skasowane:


SELECT Previous.*
FROM [Current] RIGHT JOIN Previous ON Current.Order = Previous.Order
WHERE (((Current.Order) Is Null));

a teraz potrzebuję uzyskać co było ZMIENIONE.

Czyli wynik:
D = 1, Name = Paul, System = Windows 10,
ID = 2, Name = Peter Gladosz, System = Linux 4

Te 2 Id były zmienione stąd też to chcę mieć w wyjściowej kwarendzie...

Proszę o pomoc,

Pozdrawiam,
Jacek

0

W załączonym przykładize jest rozwiązanie ale w kilku kwarendach, oraz z kodem VBa.
Czy da się to zrobić jednym SQLkiem? (na pewno sie da!:P)

Jacek

1

No to pozostaje alternatywa w join:

SELECT 
    Current.Order
    ,Current.System AS [System NewValue]
    ,Previous.System AS [System OldValue]
    ,Current.Name AS [Name NewValue]
    ,Previous.Name AS [Name OldValue]

FROM 
    [Current] 
    INNER JOIN Previous ON Current.Order = Previous.Order 
                                              and ( 
                                                     Current.System<>[Previous].[System]
                                                     or
                                                     Current.Name<>[Previous].[Name]
                                                     )
0

zajebiście dziękuję !!

Działa idealnie,
dzięki !

Jacek

0

Hej,

sorki muszę odkopać temat.
Czy jest możliwość, aby SQLkiem w danym zadaniu pokazać puste miejsca jeśli wartości są takie same?

Czyli jeśli mam w tabeli Current imię Paul, w previous też Paul to newValue powinno być puste ponieważ Name=Name.

Lub wynik:
ID, NewSystemValues, NewNameValues

i tam gdzie wartości są takie same jak w poprzedniej tabeli dać puste miejsca.

Pozdrawiam,
Jacek

0

Iif(current.name=previous.name,"",current.name) as newname

0

dziękuję bardzo !

1 użytkowników online, w tym zalogowanych: 0, gości: 1