Size: a a a

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

2020 September 28

ДК

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

IC

Igor Chizhov in SqlCom.ru - Стиль жизни SQL
Андрей
SELECT Number
FROM Shop s JOIN Questionaries q1 on q1.ShopID=s.Number
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 ShopID
FROM Questionaries
WHERE Date BETWEEN '2020-09-01' and '2020-09-28'
)

Попробовал данный пример, результат пустой
Потому что надо связать Questionaries с Shop в NOT EXISTS, а джойн тут нафиг не нужен. Ну или LEFT JOIN без NOT EXISTS.
источник

ДК

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

ДК

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

А

Андрей in SqlCom.ru - Стиль жизни SQL
я поясню, может я действительно что-то не уловил. в таблице Shop содержатся около 400 магазинов, мне же нужно только у 24 определенных магазинов найти тех, из которых данные не поступали, поэтому я в первой части запроса и указал номер нужных для проверки магазинов а во второй части (NOT EXISTS) хотел отнять список тех магазинов которые данные отправляли
источник

2_

2flower _ in SqlCom.ru - Стиль жизни SQL
Андрей
SELECT Number
FROM Shop s JOIN Questionaries q1 on q1.ShopID=s.Number
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 ShopID
FROM Questionaries
WHERE Date BETWEEN '2020-09-01' and '2020-09-28'
)

Попробовал данный пример, результат пустой
я вообще такое не писал, в первом примере join'а не было.
источник

ДК

Дмитрий Калинов... in SqlCom.ru - Стиль жизни SQL
Андрей
я поясню, может я действительно что-то не уловил. в таблице Shop содержатся около 400 магазинов, мне же нужно только у 24 определенных магазинов найти тех, из которых данные не поступали, поэтому я в первой части запроса и указал номер нужных для проверки магазинов а во второй части (NOT EXISTS) хотел отнять список тех магазинов которые данные отправляли
охохо
твой запрос должен получать из таблицы Shop такие магазины, для которых в таблице Questionaries нет ни одной записи
источник

ДК

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

А

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

ДК

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

понимаешь @afonchi ?
источник

ДК

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

А

Андрей in SqlCom.ru - Стиль жизни SQL
SELECT ShopID
FROM Questionaries
WHERE  Date BETWEEN '2020-09-01' and '2020-09-28'

Вот таким образом я вы вожу список все магазинов за сентябрь, верно?
источник

ДК

Дмитрий Калинов... in SqlCom.ru - Стиль жизни SQL
Андрей
SELECT ShopID
FROM Questionaries
WHERE  Date BETWEEN '2020-09-01' and '2020-09-28'

Вот таким образом я вы вожу список все магазинов за сентябрь, верно?
номера магазинов, у которых есть записи за сентябрь
источник

ДК

Дмитрий Калинов... in SqlCom.ru - Стиль жизни SQL
Андрей
SELECT ShopID
FROM Questionaries
WHERE  Date BETWEEN '2020-09-01' and '2020-09-28'

Вот таким образом я вы вожу список все магазинов за сентябрь, верно?
да, верно
источник

А

Андрей in SqlCom.ru - Стиль жизни SQL
Есть, получил порядка 110 000 строк
источник

А

Андрей 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 ShopID
FROM Questionaries
WHERE  Date BETWEEN '2020-09-01' and '2020-09-28'
)
источник

А

Андрей 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 ShopID
FROM Questionaries
WHERE  Date BETWEEN '2020-09-01' and '2020-09-28'
)
у тебя нет корелирующего запроса тут
источник

А

Андрій 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 ShopID
FROM Questionaries
WHERE  Date BETWEEN '2020-09-01' and '2020-09-28'
)
ещё раз - номера магазинов, прописанные в запросе явным образом - это в данной конкретной задаче ФУ, не надо так
источник