powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Работает 50 на 50
10 сообщений из 10, страница 1 из 1
Работает 50 на 50
    #39985032
Raze
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем! Может кто подсказать, что не так? У меня в таблице брака (_braks_a), которая получается при выполнении запроса, в ней есть пустые записи (null), если запись пустая, то выводим "Вид брака не указан", но я не хочу чтобы в таблицу выводились записи с источником брака "Опытные работы", поэтому в условии явно указал, что этот вид брака не выводим. После выполнения запроса, пропадают все записи с источником брака "Опытные работы", а так же пропадают записи со значением null, не могу понять почему, подскажите пожалуйста
Тип поля VID - Memo, 4

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
declare @dateN  date = '2020-07-01'
declare  @datek date = '2020-07-31'

 select  r.*
, 1 pr_str
,case when  isnull((select  dd.kol
				from dms dd
				where dd.undoc	=r.UNDOC and dd.npp=r.NPP
						and dd.KDMT='СБП'
				),1) >0 
		then 0
		else 1									
	end flgDopBraka
	, DATEPART(week, r.DDM) w
	, DATEPART(MONTH, r.DDM) m
	, DATEPART(YEAR, r.DDM) y
	--узнаем номер недели и года прошлой недели
	, DATEPART(week, DATEADD(week,-1,getdate())) lw  
	, DATEPART(YEAR, DATEADD(week,-1,getdate())) lwy
from(
select bb.FIO_D
	, bb.COMM, bb.DDM, bb.dprt, bb.FIO_OTV, bb.HSDOC, bb.KMAT, bb.KOL
	, bb.kom, bb.KPRT_DB, bb.N_RES_DOC, bb.NDM, bb.NDMT_S, bb.NPP
	, isnull(bb.per,0) per
	, bb.PR_RZN, bb.PRCH
	, isnull(bb.resh,'') resh
	, bb.sum_d, bb.sum_i, bb.UNDOC
    , bb.VID
    , '  '+isnull(bb.VID,'Вид брака не указан') VIDn                               
from _BRAKS_A bb
where bb.ddm between @dateN and @datek
    and not bb.KPRT_DB in ('Б00003/18','Б00007/18','Б00008/18','Б00010/18 ')
	and bb.vid <> 'Опытные работы' 
)r
...
Рейтинг: 0 / 0
Работает 50 на 50
    #39985040
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Raze
После выполнения запроса, пропадают все записи с источником брака "Опытные работы", а так же пропадают записи со значением null, не могу понять почему, подскажите пожалуйста

из-за этого условия
Код: sql
1.
and bb.vid <> 'Опытные работы'


null сравнивать нельзя. Можно только проверять is null / is not null

Так измени
Код: sql
1.
and isnull(bb.VID,'Вид брака не указан') <> 'Опытные работы'


или так
Код: sql
1.
and (bb.vid <> 'Опытные работы' or bb.vid is null)
...
Рейтинг: 0 / 0
Работает 50 на 50
    #39985041
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
and (bb.vid is null or bb.vid <> 'Опытные работы')
...
Рейтинг: 0 / 0
Работает 50 на 50
    #39985048
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверь SET ANSI_NULLS
...
Рейтинг: 0 / 0
Работает 50 на 50
    #39985220
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
godsql
Проверь SET ANSI_NULLS


А ещё лучше поменяй, и удивляйся результатам всех остальных запросов.
...
Рейтинг: 0 / 0
Работает 50 на 50
    #39985248
Raze
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court,
круто! спасибо большое) буду знать!
...
Рейтинг: 0 / 0
Работает 50 на 50
    #39985249
Raze
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем огромное спасибо за помощь! Все ок)
...
Рейтинг: 0 / 0
Работает 50 на 50
    #39985264
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env
godsql
Проверь SET ANSI_NULLS


А ещё лучше поменяй, и удивляйся результатам всех остальных запросов.

ну, может быть человек привык к другому окружению, потому и вызвало затруднение
...
Рейтинг: 0 / 0
Работает 50 на 50
    #39985268
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
godsql,

Меня каждый раз умиляет, когда "привыкшие к другому окружению", искренне не понимают, почему в большинстве СУБД null <> null и разнорегистровые значения считаются разными. А уж когда это проявляется на родном сиквеле, так и вообще люди в ступор спадают.
...
Рейтинг: 0 / 0
Работает 50 на 50
    #39985329
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, троичная логика во многих языках используется. В том же JavaScript гораздо более непонятное использование, чем в скуле. Насколько я помню, работа с учетом null в скуле еще в самом начале рассматривается, там много где "совсем не так" работает. Это ж база.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Работает 50 на 50
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]