sql >> Databáze >  >> RDS >> Sqlserver

Uložená procedura, levé spojení mi dává duplicitní řádky, ale chci horní (1) řádek pro každý záznam se stejným ID

Nejprve jsem hledal něco, co mi nedá prázdné sloupce s levým spojením, tak jsem použil,

coalesce(TableC.SomeColumn, -1) As SomeColumnHeHe

Pak jsem narazil na problém, kdy jsem potřeboval vybrat pouze top 1 z levého spojení, takže jsem použil OUTER APPLY, jak je uvedeno níže,

SELECT Top(1)
    TableA.*,
        TableB.*,
        someFunction(TableA.ID),
        coalesce(TableC.someColumn, -1) As SomeColumnExample,
        TempTable.IDA
 FROM 
    TableA INNER JOIN TableB ON TableA.ID = TableB.IDA
    OUTER APPLY
         (SELECT TOP(1) * FROM TableC where TableC.IDA = TableA.IDA Order By DateAdded Desc )  As TempTable

Where TableA.ID = @ParaID
Order By TableC.DateTime Desc


  1. Hive 2.1.1 MetaException (zpráva:Informace o verzi nebyly nalezeny v metastore. )

  2. Načítání datového rámce z Pandas do SQL pro ORACLE Yields a ERROR - ORA-00911:Neplatný znak

  3. Je možné změnit přirozené pořadí sloupců v Postgresu?

  4. Analyzujte výchozí hodnoty parametrů pomocí prostředí PowerShell – část 2