Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 September 28

А

Андрій in SqlCom.ru - Стиль жизни SQL
and или or exists
источник

А

Андрей in SqlCom.ru - Стиль жизни SQL
Андрій
булевой оператор забыл
точно, спасибо)) p.s. "Голова дырявая, заштопать некогда" ))
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Андрей
Или подскажите плиз ошибку в данном запросе


SELECT DISTINCT ShopID
FROM Questionaries
WHERE ShopID in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303) and Date BETWEEN ('2020-09-01') and ('2020-09-28')
EXISTS (
SELECT Number
FROM Shop WHERE Number in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303)
)
AND EXISTS (
...)
источник

А

Андрей in SqlCom.ru - Стиль жизни SQL
Ilia Zviagin
AND EXISTS (
...)
СПС
источник

А

Андрей in SqlCom.ru - Стиль жизни SQL
SELECT Number
FROM Shop WHERE Number in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303)
AND
NOT EXISTS
(SELECT DISTINCT ShopID
FROM Questionaries
WHERE ShopID in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303) and Date BETWEEN ('2020-09-01') and ('2020-09-28')
)
источник

А

Андрей in SqlCom.ru - Стиль жизни SQL
Андрей
SELECT Number
FROM Shop WHERE Number in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303)
AND
NOT EXISTS
(SELECT DISTINCT ShopID
FROM Questionaries
WHERE ShopID in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303) and Date BETWEEN ('2020-09-01') and ('2020-09-28')
)
А в данном примере где содержится ошибка, можете подсказать?
источник

А

Андрей in SqlCom.ru - Стиль жизни SQL
я пытаюсь вывести номера магазинов из которых не поступали данные за сентябрь месяц
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Андрей
SELECT Number
FROM Shop WHERE Number in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303)
AND
NOT EXISTS
(SELECT DISTINCT ShopID
FROM Questionaries
WHERE ShopID in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303) and Date BETWEEN ('2020-09-01') and ('2020-09-28')
)
Distinct в подзапроса лишний
источник

А

Андрей in SqlCom.ru - Стиль жизни SQL
все равно не вывелись нужные данные
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Андрей
SELECT Number
FROM Shop WHERE Number in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303)
AND
NOT EXISTS
(SELECT DISTINCT ShopID
FROM Questionaries
WHERE ShopID in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303) and Date BETWEEN ('2020-09-01') and ('2020-09-28')
)
Скобки в between не нужны
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Андрей
все равно не вывелись нужные данные
Не вывелись нулевые данные -это не ошибка в запросе, это неверный запрос
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
думаю с лефтджойном с исНулл было б удобнее, хотбяы не нужно было б список два раза обявлять.
источник

А

Андрей in SqlCom.ru - Стиль жизни SQL
убрал но результат такой же
источник

ДК

Дмитрий Калинов... in SqlCom.ru - Стиль жизни SQL
Андрей
SELECT Number
FROM Shop WHERE Number in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303)
AND
NOT EXISTS
(SELECT DISTINCT ShopID
FROM Questionaries
WHERE ShopID in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303) and Date BETWEEN ('2020-09-01') and ('2020-09-28')
)
что-то мне этот запрос не кажется нормальным, можно оригинал задания увидеть?
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Андрей
SELECT Number
FROM Shop WHERE Number in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303)
AND
NOT EXISTS
(SELECT DISTINCT ShopID
FROM Questionaries
WHERE ShopID in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303) and Date BETWEEN ('2020-09-01') and ('2020-09-28')
)
Ну логика тут наверняка неверная, number и shop id наверняка не могут иметь Одни и те же значения
источник

ДК

Дмитрий Калинов... in SqlCom.ru - Стиль жизни SQL
Андрій
думаю с лефтджойном с исНулл было б удобнее, хотбяы не нужно было б список два раза обявлять.
ну да, так и напрашивается
источник

А

Андрей in SqlCom.ru - Стиль жизни SQL
Вот таким запросом, я получил нужный результат, а как вывести через разность не соображу

SELECT Number FROM Shop WHERE (Number in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303))
AND Number not in (SELECT DISTINCT ShopID
FROM Questionaries
WHERE ShopID in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303) and Date BETWEEN ('2020-09-01') and ('2020-09-28')
)
источник

2_

2flower _ in SqlCom.ru - Стиль жизни SQL
Андрей
SELECT Number
FROM Shop WHERE Number in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303)
AND
NOT EXISTS
(SELECT DISTINCT ShopID
FROM Questionaries
WHERE ShopID in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303) and Date BETWEEN ('2020-09-01') and ('2020-09-28')
)
1. Скобки в BETWEEN лишние
2. DISTINCT лишний.
3. IN лишний в Exists.  достаточно написать Questionaries.ShopID=Shop.Number
источник

ДК

Дмитрий Калинов... in SqlCom.ru - Стиль жизни SQL
и приколачиваться к id магазинов - не самый лучший вариант
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Андрей
SELECT Number
FROM Shop WHERE Number in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303)
AND
NOT EXISTS
(SELECT DISTINCT ShopID
FROM Questionaries
WHERE ShopID in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303) and Date BETWEEN ('2020-09-01') and ('2020-09-28')
)
Тебе вычитание нужно, подзапрос должен быть коррелированный, у тебя какая-то хрень вместо этого
источник