строку ( должно быть много)
WITH CTE1 AS (
SELECT DISTINCT COL
FROM TAB1
)
, CTE2 AS (
SELECT DISTINCT COL
FROM TAB2
)
SELECT columns
FROM CTE1 a
LEFT JOIN CTE2 b ON a.COL = b.COL
LEFT JOIN TAB3 c ON a.COL = c.COL
WHERE b.COL IS NULL;
Если убрать условие
WHERE b.COL IS NULL;
, то возвращаются осответственно все строки из CTE1.
WTF?
Переделал всё с нуля с новым табликсом - тот же результат, делал в репорт билдере
а чем этот запрос отличается от select * from TAB3 where COL is null? Или тут COL означает разные поля в разных частях запроса? дистинкты вернут по 1му налу, where отфильтрует все кроме него и после первого джойна у тебя будет 1 строка с col = null, а там уже завсист от того сколько налов в tab3. Так что либо запрос неверно здесь привел, либоо что-то с логикой самого запроса.
мне нужны строки из CTE1, которых нет в CTE2
А если так? WITH CTE1 AS ( SELECT DISTINCT COL FROM TAB1 ) , CTE2 AS ( SELECT DISTINCT COL FROM TAB2 ) SELECT * FROM CTE1 a where not exists (select b.COL from CTE2 b where b.COL=a.COL)
В общем я раставил скобки,в определенные моменты работает корректно,а в определенные нет) Логику работы не очень понимаю казалось бы вот этот запрос должен отрабатывать на ура,но нет....
пробовал exists, except, похоже какая-то бага, пехал даже во вьюху, без этого условия все строки, с ним - одна
интересная работа конечно я пытаюсь прочитать по смыслу свой запрос)но чето нивкакую воспринять не могу) типа если департамент 1 или 2 и при этом зп между 5000 и 12000 то выводи этих работников А по факту все не так
ну это баг чего среды, данных
department_Id in (1,2) Ну или поставь скобки, поссле AND и перед department_ID = 1 и закрывающую в конце после department_ID = 2
ок,спс,но всеравно я так и не понял почему тот запрос не работает Я вот читаю слева на право его,должно быть все нормально))) первый или второй департамент и зп в таком-то диапазоне)
Потому что когда ты используешь в запросе вместе несколько or and , то лучше их записывать через скобки, чтобы интерпритатор однозначно понимал порядок действий
запихни в процедуру свой запрос и дёрни из нее
сурс на гринпламе, пехал во вьюху, тот же результат
из вьюшки без ssrs прям тоже как надо?
То что в скобках выполняется в первую очередь насколько я понял
пацанэ, вощем дело было в timezone в датагрипе
тоесть запрос всё верно возвращал?
Обсуждают сегодня