Как запросить, где, если поля не в базе данных - PullRequest
0 голосов
/ 13 февраля 2019

Мне нужно выбрать запрос, в котором поле отсутствует в базе данных.

SELECT s.buyer as [Buyer],
SUM(s.total) as [Total Sales],
b.balance,s.buydate
from salesdb s inner join buyerdb b on s.buyer=b.buyer
where 
(s.buydate=@buydate and
b.balance>@balance and s.total & "" = "" or s.total is NULL or s.total=@empty ) or (s.buydate=@buydate and b.balance=@balance and s.total>@sales)
or (s.buydate=@buydate and b.balance>@balance and s.total>@sales) or 
(s.buydate is NULL and s.total & "" = ""and b.balance>@balance and s.total & "" = "" or s.total is NULL or s.total=@empty )
GROUP By s.buyer,b.balance,s.buydate"

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

, где s.buydate равен нулю?
, где s.buydate = "" = ""

это почти работает, мне просто нужно знать, как я могу запросить, если дата еще не в базе данных.пробовал это, но никто не работал

1 Ответ

0 голосов
/ 13 февраля 2019

s.buydate IS NULL правильно.Но у вас есть другие проблемы.AND имеет более высокий приоритет, чем OR.Это означает, что

s.buydate=@buydate AND
b.balance>@balance AND
s.total & "" = "" OR s.total IS NULL OR s.total=@empty

эквивалентно

(s.buydate=@buydate AND b.balance>@balance AND s.total & "" = "") OR
s.total IS NULL OR
s.total=@empty

Это не то, что вы хотите.

Мне не ясно, что @empty должнобыть.В базе данных строка может быть пустой строкой ("") или Null.Значение Empty применяется только к VBA Variants, но не к SQL.Поскольку в SQL вы можете использовать одинарные кавычки в качестве разделителей строк, напишите

(s.buydate = @buydate OR s.buydate IS NULL) AND
b.balance > @balance AND
(s.total = '' OR s.total IS NULL)

Возвращает записи, которые имеют требуемый buydate или еще не имеют его.Если пропущено не просто поле, а целая запись, тогда вы должны использовать ЛЕВОЕ СОЕДИНЕНИЕ вместо ВНУТРЕННЕГО СОЕДИНЕНИЯ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...