2016-10-18 12 views
1

私はコードリニューアルを含む小さなプロジェクトに取り組んでいます。私は、古いSQL結合記号に基本的な親しみを持っていますが、そのほとんどは私がstackoverflowからピックアップしましたが、周囲の構造の多くが私がよく知っているものとは非常に異なっていることに気づいています。私は基本的に、現代のSQLコードに変換する限りこれに類似した設定のコードに困惑しています。 私はこれを他の人と関連させたいと思っていますが、私はほとんどのソフトウェアが何年も前に更新されていると仮定します。アドバイスをいただければ幸いです。私は古いSQL結合コマンドを現代のコードに変換する方法に慣れていません。 * =/= *

If @SelectLevel = '' Or @SelectLevel = 'B' 
Select @SQLCmd = 
    'SELECT Stop_Number, ''B'' AS Inv_Type, Inv_Desc, ' + 
     'Box_Number AS Item_Number, BOX.Company_ID, BOX.Department_ID, BOX.Group_Id, BOX.Section_Id, ' + 
     'BOX.Media_Code, BOX.Location_Current, BOX.Location_Home, BOX.Hold_Status, BOX.Record_Type, ' + 
     'BOX.Alternate_Id, BOX.Description1, BOX.Retention_Code, BOX.Retention_type, BOX.Retention_Disposal, ' + 
     'BOX.Description2, BOX.Description3, ' + 
     'Reservation_Status, BOX.Disposition_Status ' + 
    'FROM BOX, DISPOSITION_MEMO, (SELECT Item_Type, Item_Number, MAX(Reservation_Process_Status) AS ' + 
    'Reservation_Status FROM RESERVATION GROUP BY Item_Type, Item_Number) AS RESV, ' + 
    '(SELECT Ele_Text AS Inv_Desc, Ele_Usr_Text AS Inv_Usr_Type, Ele_Action ' + 
     'FROM ELEMENT_METRICS WHERE Ele_Name = ''Inventory'' AND Ele_Type = ''Dropdown'') AS INVTYPE ' + 
    'WHERE Stop_Number = ' + Convert(Char(10),@Disposition_Number) + ' AND ' + 
     'INVTYPE.Ele_Action = ''B'' AND ' + 
     'Box_Number *= RESV.Item_Number AND RESV.Item_Type = ''B'' AND ' + 
     'BOX.Stop_Number = DISPOSITION_MEMO.Disposition_Number AND ' + 
     'BOX.Stop_Date = DISPOSITION_MEMO.Issue_Date' 
+0

'select ... from a、b'は単純に' select ... from join b'となります。結合ごとに必要な結合の種類(左/右/内部/ etc ...)を把握しなければなりません。それほど簡単ではありません。 –

答えて

関連する問題