sql >> Database >  >> RDS >> Sqlserver

Gegevensrijen voor verzenden en ontvangen koppelen in SQL

select *
from
    (select * from T where Action = 'SENT') s
    left outer join
    (select * from T where Action = 'RECEIVED') r
        on r.Module and s.Module and r.User = s.User and r.Batch = s.Batch

Uit de beperkte hoeveelheid voorbeeldgegevens blijkt dat je een match uniek kunt bepalen door een gemeenschappelijke module te hebben , user en batch . Ik weet niet zeker waarom je duplicaten in je zoekopdrachten hebt gevonden. Het enige andere probleem lijkt het gebruik van een outer join om de "sends" die nog geen "receive" hebben, te behouden.

Ik denk dat je nog steeds alles in het resultaat wilde hebben. Als je alleen de ongepaarde scenario's wilt, voeg dan toe:

where r.Module is null


  1. MySQL-query die lege plekken toevoegt om de gaten te vullen

  2. Wat is de beste databasestructuur om meertalige gegevens te bewaren?

  3. Veilige overdracht van gegevens van SQL-server naar SQL-server via internet

  4. Voer een groot SQL-script uit (met GO-opdrachten)