Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как избавиться от лишних null значений?  [new]
minya13_85
Member

Откуда: Москва
Сообщений: 598
Есть таблица:
create table #Table (mes INTEGER, Artikul NVARCHAR(10),Data datetime,kol integer)
go
INSERT #Table  VALUES(1, N'01Б714545','2009-09-21',45)
INSERT #Table  VALUES(1, N'01С712245','2009-09-22',32)
INSERT #Table  VALUES(3, N'01К565423',Null,null)
INSERT #Table  VALUES(5, N'01К565423',Null,null)
INSERT #Table  VALUES(4, N'01Б710030','2009-10-03',12)
INSERT #Table  VALUES(6, N'01Б710030',Null,null)
INSERT #Table  VALUES(7, N'01Б710030',Null,null)
Нужно получить такую таблицу:

mesArtikuldatakol
101Б71454521/09/200945
101С71224522/09/200932
401Б7100303/10/200912
601Б710030nullnull
701Б710030nullnull


Т.е. если в таблице есть несколько одинаковых артикулов и у них поля kol или data все null, то исключить их, а если хотя бы один is not null то показать все поля с этим артикулом.
7 окт 09, 10:41    [7751810]     Ответить | Цитировать Сообщить модератору
 Re: Как избавиться от лишних null значений?  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
minya13_85
если в таблице есть несколько одинаковых артикулов и у них поля kol или data все null, то исключить их,
а если хотя бы один is not null то показать все поля с этим артикулом.
Попытаюсь перевести дословно
select mes, Artikul, Data, kol
  from #Table as t1
 where exists (select 'не важно что'
                 from #Table as t2
                where t2.Artikul = t1.Artikul
                  and Data is not null
                  and kol is not null)

mes         Artikul    Data                    kol
----------- ---------- ----------------------- -----------
1           01Б714545  2009-09-21 00:00:00.000 45
1           01С712245  2009-09-22 00:00:00.000 32
4           01Б710030  2009-10-03 00:00:00.000 12
6           01Б710030  NULL                    NULL
7           01Б710030  NULL                    NULL

(5 row(s) affected)
7 окт 09, 10:47    [7751840]     Ответить | Цитировать Сообщить модератору
 Re: Как избавиться от лишних null значений?  [new]
Glory
Member

Откуда:
Сообщений: 104760
minya13_85

Т.е. если в таблице есть несколько одинаковых артикулов и у них поля kol или data все null, то исключить их, а если хотя бы один is not null то показать все поля с этим артикулом.

И какой результат должен получиться для предложенных данных ?
7 окт 09, 10:48    [7751857]     Ответить | Цитировать Сообщить модератору
 Re: Как избавиться от лишних null значений?  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Хотя... может, автору надо так
select mes, Artikul, Data, kol
  from #Table as t1
 where exists (select 'не важно что'
                 from #Table as t2
                where t2.Artikul = t1.Artikul
                  and (   Data is not null
                       or kol is not null))
Тестовые данные не очень, да и постановка задачи запутанная
7 окт 09, 10:55    [7751916]     Ответить | Цитировать Сообщить модератору
 Re: Как избавиться от лишних null значений?  [new]
minya13_85
Member

Откуда: Москва
Сообщений: 598
Паганель
опытаюсь перевести дословно
select mes, Artikul, Data, kol
  from #Table as t1
 where exists (select 'не важно что'
                 from #Table as t2
                where t2.Artikul = t1.Artikul
                  and Data is not null
                  and kol is not null)

mes         Artikul    Data                    kol
----------- ---------- ----------------------- -----------
1           01Б714545  2009-09-21 00:00:00.000 45
1           01С712245  2009-09-22 00:00:00.000 32
4           01Б710030  2009-10-03 00:00:00.000 12
6           01Б710030  NULL                    NULL
7           01Б710030  NULL                    NULL

(5 row(s) affected)

Спасибо, то что нужно.
7 окт 09, 10:56    [7751923]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить