1
저는 많은 코드 리노베이션을 포함하는 작은 프로젝트를 진행하고 있습니다. 나는 오래된 SQL join 기호에 대한 기본적인 친숙성을 가지고 있는데, 대부분은 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'
'select ... from a, b'는 단순히 'select ... from join b'가됩니다. 당신은 join-per-basis로 어떤 종류의 join (왼쪽/오른쪽/inner/etc ...)이 필요한지 알아 내야 할 것입니다. 그건 덜 쉬울거야. –