sql >> データベース >  >> Database Tools >> SSMS

結合されたクエリで結合を実行する

    現在の方法はあまり効率的ではありません。他の人は通常CASE WHENを使用します それをするために。

    SELECT   t.uniqueID,
             IN_Info1 = MAX(case when t.type = 'IN' then t.information1 end),
             IN_Info2 = MAX(case when t.type = 'IN' then t.information2 end),
             IN_Notes = MAX(case when t.type = 'IN' then t.Notes end),
             OUT_Info1 = MAX(case when t.type = 'OUT' then t.information1 end),
             OUT_Info2 = MAX(case when t.type = 'OUT' then t.information2 end),
             OUT_Notes = MAX(case when t.type = 'OUT' then t.Notes end)
    FROM     TABLEB t
    GROUP BY t.uniqueID
    

    次に、Big Queryに組み込むには、CTEまたはDERIVED TABLE

    を使用できます。
    -- CTE
    ; with Tblb as
    (
      SELECT   t.uniqueID,
               IN_Info1 = MAX(case when t.type = 'IN' then t.information1 end),
               IN_Info2 = MAX(case when t.type = 'IN' then t.information2 end),
               IN_Notes = MAX(case when t.type = 'IN' then t.Notes end),
               OUT_Info1 = MAX(case when t.type = 'OUT' then t.information1 end),  
               OUT_Info2 = MAX(case when t.type = 'OUT' then t.information2 end),  
               OUT_Notes = MAX(case when t.type = 'OUT' then t.Notes end)
      FROM     TABLEB t
      GROUP BY t.uniqueID
    )
    select   *
    from     TableA a
             inner join Tblb b ON a.uniqueID = b.uniqueID
    

    このX1.t1.uniqueID.は実行できません。 、X1.uniqueIDのみである必要があります




    1. phpMyAdminを使用してMySQLイベントスケジュールを設定できますか?

    2. トランザクションのデッドロックの犠牲者、優先順位を変更する方法は?

    3. MySQLのコメント:接続できません:無効な設定

    4. Docker:PhpMyAdminのアップロード制限は2048KiBです