2015-05-13 5 views
0
Update s 
Set s.ServiceDeliverySettingID = 
           Case 
           When s.HCCMRRServiceType = '01' Then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
                    Where HCCValue = '08') 
           When s.HCCMRRServiceType in ('02','10') Then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
                    Where HCCValue = '01') 
           When s.HCCMRRServiceType = '06' Then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
                    Where HCCValue = '97') 
           When s.HCCMRRServiceType in ('08','11') Then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
                    Where HCCValue = '10') 
           When s.HCCMRRServiceType = '14' Then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
                    Where HCCValue = '05') 
           When s.HCCMRRServiceType = '51' Then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
                  Where HCCValue = '06') 
           When s.HCCMRRServiceType = '50' 

           Then 

           case 

            when s.InterventionCode = 'ICR' then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
                  Where HCCValue = '97') 
            when s.InterventionCode = 'RC' then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
                  Where HCCValue = '06') 
            when s.InterventionCode = 'ICFCH' then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
                  Where HCCValue = '02') 



           End 
From [DSDW].[Staging].[HCCMRRBuildService] s 

Msg 156, Level 15, State 1, Line 33 Неправильный синтаксис около ключевого слова 'С'.обновление SQL неправильный синтаксис из

Может кто-нибудь, пожалуйста, помогите мне объяснить, почему я получаю сообщение об ошибке при выполнении вышеуказанного запроса на обновление?

+0

Может кто-нибудь, пожалуйста, помогите мне объяснить, почему я получаю сообщение об ошибке, когда я выполняю вышеуказанный запрос на обновление? – sab

+2

Подсчитайте количество экземпляров слова 'CASE', а затем подсчитайте количество экземпляров слова' END'. Лучшее форматирование и отступы могли бы сделать проблему более очевидной. –

ответ

1

На первый взгляд, у вас есть вложенное случай, но я вижу только один END. Вам нужно добавить еще один END, чтобы завершить родительский набор операторов CASE.

+0

большое спасибо, я чувствую себя глупо :) – sab

3

У вас есть END отсутствует

Update s 
Set s.ServiceDeliverySettingID = 
     Case 
     When s.HCCMRRServiceType = '01' Then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
              Where HCCValue = '08') 
     When s.HCCMRRServiceType in ('02','10') Then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
              Where HCCValue = '01') 
     When s.HCCMRRServiceType = '06' Then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
              Where HCCValue = '97') 
     When s.HCCMRRServiceType in ('08','11') Then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
              Where HCCValue = '10') 
     When s.HCCMRRServiceType = '14' Then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
              Where HCCValue = '05') 
     When s.HCCMRRServiceType = '51' Then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
            Where HCCValue = '06') 
     When s.HCCMRRServiceType = '50' 

     Then 
      case 
      when s.InterventionCode = 'ICR' then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
            Where HCCValue = '97') 
      when s.InterventionCode = 'RC' then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
            Where HCCValue = '06') 
      when s.InterventionCode = 'ICFCH' then (Select ServiceDeliverySettingID from [DSDW].[Dim].[ServiceDeliverySetting] 
            Where HCCValue = '02') 
      END --<-- this was missing 
     End 
From [DSDW].[Staging].[HCCMRRBuildService] s 
+0

большое спасибо, я чувствую себя глупо :) – sab

Смежные вопросы