Текстовый редактор запросов к построителю отчетов

0
задан HawaiianShirts 16 January 2019 в 18:17
поделиться

1 ответ

Предполагая, что все остальное правильно, нужно просто применить скобки, чтобы получить правильную логику. Используя немного преувеличенные пробелы, чтобы попытаться прояснить ситуацию:

WHERE
  SYSTEM.REGION.REGION_STATUS_CODE = N'1'
  AND SYSTEM.STATE.STATE_STATUS_CODE = N'1'
  AND SYSTEM.ORDERS.DISCARDED_DATE IS NULL
  AND SYSTEM.SERVICE.SERVICE_DISCARDED_DATE IS NULL
  AND SYSTEM.SERVICE.SERVICE_STATUS_CODE = N'01'
  AND (
        (SYSTEM.ORDERS.DISCOUNT_CODE = N'N/A'
         AND SYSTEM.SERVICE.SERVICE_CONTRACT_CODE = N'Retail')
       OR
        (SYSTEM.ORDERS.DISCOUNT_CODE != N'N/A'
         AND SYSTEM.SERVICE.SERVICE_CONTRACT_CODE = N'Wholesale')
      )

(он может работать вечно, но это больше зависит от размера базы данных и индексации.)

0
ответ дан Philip Kelley 16 January 2019 в 18:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: