2015-09-02 2 views
0

Это мое первое сообщение здесь, хотя я был на сайте много раз. Я попытался найти ответ, но не нашел того, что касалось моей проблемы.Стратегия поиска и устранения неполадок сложного запроса t-sql

The T-SQL Query я работаю:

  1. Выбирается около 120 полей,
  2. Имеет около 40 Присоединяется [некоторые из которых содержат 'Выбирается']
  3. не возвращает данных.

Я не знаю родословную SQL, но МОЖЕТ иметь полезную логику/объединение - и это СЛЕДУЕТ возвращать данные.

Каков наилучший способ поиска и устранения неполадок/расшифровки запроса?

Спасибо!

Следуя рекомендациям, я обнаружил пару синтаксических ошибок (отсутствующие предложения ON в операциях объединения), и я нашел Объединение, которое исключает данные. Первый - таблица, которая не входит в список выбора Select. Когда есть соединение с таблицей, из которой не возвращаются строки, является ли это «проблемой» или намерение использовать соединение для исключения строк? Сами данные сейчас для меня новы, или я не могу задавать этот вопрос.

Спасибо!

+0

Вы можете использовать CTE, чтобы уменьшить сложность и удалить подзапросы. Тем не менее, вы должны понять запрос, чтобы иметь возможность полностью его реорганизовать. –

+0

CTE в разделе объединений? И часть моего вопроса заключалась в том, КАК понимать [расшифровать] ... есть ли принятая передовая практика, где начать пытаться понять запрос и объединить его? – Talay

+0

* «Как вы едите слона? Один укус за раз». * – lad2025

ответ

0

Довольно просто - одна из/присоединиться в то время
если соединить имеет отборное то тест, выберите

select cols 
    from table 
where =... 

затем

select cols 
    from table 
    join table1 
    on 
where 

строить его, пока вы не получите неправильный ответ и исправить его

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