Size: a a a

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

2020 September 28

IC

Igor Chizhov 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 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')
)
Да тоже лажа какая-то
источник

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 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')
)
У тебя список для shop id и  number один и тот же. Так не может быть
источник

А

Андрей 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')
)
тут получилось вывести номера магазинов, которые не прислали данные за сентябрь
источник

ДК

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

2_

2flower _ in SqlCom.ru - Стиль жизни SQL
мне очень больно за сервер.
источник

ДК

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

А

Андрей in SqlCom.ru - Стиль жизни SQL
Ilia Zviagin
У тебя список для shop id и  number один и тот же. Так не может быть
есть 2 таблицы. первая Shop в которой нужные столбцы это Number(номер магазина) и Name(название и полный адрес магазина)
и вторая таблица  Questionaries в которой поле Questionaries.ShopId =Shop.Number  (номер магазина)


Нужно из 24 номеров магазина найти, список тех которые не прислали данные в сентябре месяце
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Андрей
есть 2 таблицы. первая Shop в которой нужные столбцы это Number(номер магазина) и Name(название и полный адрес магазина)
и вторая таблица  Questionaries в которой поле Questionaries.ShopId =Shop.Number  (номер магазина)


Нужно из 24 номеров магазина найти, список тех которые не прислали данные в сентябре месяце
Я не буду за тебя писать запросы...
источник

ДК

Дмитрий Калинов... in SqlCom.ru - Стиль жизни SQL
Андрей
есть 2 таблицы. первая Shop в которой нужные столбцы это Number(номер магазина) и Name(название и полный адрес магазина)
и вторая таблица  Questionaries в которой поле Questionaries.ShopId =Shop.Number  (номер магазина)


Нужно из 24 номеров магазина найти, список тех которые не прислали данные в сентябре месяце
ну смотри, по условию получается, что нам нужно найти те магазины, у которых в таблице Questionaries не будет записей, датированных сентябрем
источник

ДК

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

А

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

А

Андрій in SqlCom.ru - Стиль жизни SQL
Ilia Zviagin
У тебя список для shop id и  number один и тот же. Так не может быть
а че не может быть? судя по всему это как раз внешний шоп_ид это внешний ключ к Намбер...
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Андрій
а че не может быть? судя по всему это как раз внешний шоп_ид это внешний ключ к Намбер...
оба поля в одной таблице. Если у них одинаковые значения -- это как-то странно
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Хотя... я может не понял.
источник

А

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

ДК

Дмитрий Калинов... in SqlCom.ru - Стиль жизни SQL
Ilia Zviagin
оба поля в одной таблице. Если у них одинаковые значения -- это как-то странно
посмотрел - всё же в разных
источник

А

Андрей in SqlCom.ru - Стиль жизни SQL
2flower _
1. Скобки в BETWEEN лишние
2. DISTINCT лишний.
3. IN лишний в Exists.  достаточно написать Questionaries.ShopID=Shop.Number
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'
)

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

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
ну да, я об этом же.
источник

ДК

Дмитрий Калинов... 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'
)

Попробовал данный пример, результат пустой
@afonchi пойми, пожалуйста, что тот запрос, который ты написал, он, как бы это сказать, одноразовый
источник