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

Откуда:
Сообщений: 1102
есть информация о ПК в БД, те инвентаризация. очень много задвоенных данных. помогиет это устранить. информация такая: проц, память, материнка, винт, сетевуха, МАК. если проц 2х ядерный, то это 2е строки, а если на нём ещё 2 сетевухи и 2 винта, то вообще 6 или 8 строк. при этом дублируютсянекоторые. писал запрос так: select destinct cpu, net, hdd и тд. строк становится меньше, но всё равно здвоенных много. вычслил по одинаковым МАК-адресам. те DISTINCT полностью не помог. подскажите, как избавиться от задвоенных строк??
10 июл 12, 17:09    [12846317]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
Glory
Member

Откуда:
Сообщений: 104760
seeerg_23
полностью не помог. подскажите, как избавиться от задвоенных строк??

Задвоенная строка есть строка в которой значения _всех_ поля совпадают
А если совпадают значения только в некоторых полях, то это разны строки.
10 июл 12, 17:12    [12846332]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
повторяются строки через одну.
10 июл 12, 17:23    [12846394]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
seeerg_23
повторяются строки через одну.
У вас после distinct остаются одинаковые строки? Поздравляю, вы нашли баг в MS SQL.
10 июл 12, 17:24    [12846403]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
Shakill
Member

Откуда: мск
Сообщений: 1880
seeerg_23
повторяются строки через одну.

так покажите ваш запрос с distinct и одинаковые строки, которые он выдает
10 июл 12, 17:29    [12846446]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
те так, подробнее: пк 2х я дерный, с 2мя сетевухами. запрос выдаёт 4 строки: к одному ядру относятся 2е сетевухи - те 2 строки. и ко второму ядру тоже эти же 2 сетевухи - ещё 2 строки. мак-адрес 1й совпадает с 3й строкой, 2й - с 4й. как исправить это повторение?? должно ж всего 2е строки быть !!!
10 июл 12, 17:29    [12846449]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
seeerg_23
те так, подробнее: пк 2х я дерный, с 2мя сетевухами. запрос выдаёт 4 строки: к одному ядру относятся 2е сетевухи - те 2 строки. и ко второму ядру тоже эти же 2 сетевухи - ещё 2 строки. мак-адрес 1й совпадает с 3й строкой, 2й - с 4й. как исправить это повторение?? должно ж всего 2е строки быть !!!
У вас в запросе в 17й строке ошибка.
10 июл 12, 17:30    [12846456]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 782
seeerg_23
те так, подробнее: пк 2х я дерный, с 2мя сетевухами. запрос выдаёт 4 строки: к одному ядру относятся 2е сетевухи - те 2 строки. и ко второму ядру тоже эти же 2 сетевухи - ещё 2 строки. мак-адрес 1й совпадает с 3й строкой, 2й - с 4й. как исправить это повторение?? должно ж всего 2е строки быть !!!


NULL-значения в полях есть? Если да - NULL не равен NULL. Отсюда и "дублирование".
10 июл 12, 17:33    [12846476]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
Shakill
Member

Откуда: мск
Сообщений: 1880
flexgen
NULL-значения в полях есть? Если да - NULL не равен NULL. Отсюда и "дублирование".

это вы о чем? distinct так не думает
10 июл 12, 17:37    [12846496]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
flexgen
NULL-значения в полях есть? Если да - NULL не равен NULL. Отсюда и "дублирование".
Правда, что ли?
select distinct
    a.a
from (
    select null a
    union all select null
) a    
10 июл 12, 17:39    [12846512]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
обычный запрос select distinct netbios name, cpu, network adapter, mac from pc inner join net on pc.id=net.id
может тут подзапрос надо писать (те внутр) или группировку сделать GROUP BY... но по какому полю ??
10 июл 12, 17:40    [12846520]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
seeerg_23
обычный запрос select distinct netbios name, cpu, network adapter, mac from pc inner join net on pc.id=net.id
может тут подзапрос надо писать (те внутр) или группировку сделать GROUP BY... но по какому полю ??
Как только кто-нибудь угадает структуру ваших таблиц и данные, которые в них находятся, так и ответ будет.
10 июл 12, 17:42    [12846530]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 782
Shakill
это вы о чем? distinct так не думает


Ты, видимо, об этом - http://msdn.microsoft.com/en-US/library/ms191270(v=sql.105).aspx

Care must be taken when comparing null values. The behavior of the comparison depends on the setting of the SET ANSI_NULLS option.

А как там у топик-стартера сделано - вопрос. Запрос то он нам не показал.
10 июл 12, 17:43    [12846540]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
ещё может объединение табл надо не inner join, а left, right или out ?? а как-то вот так ещё реально сделать: ... where not in net.mak=net.mak ?? те одинаковые значения исключить??
10 июл 12, 17:46    [12846568]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
структура простейшая из 2х табл select distinct netbios name, cpu, network adapter, mac from pc inner join net on pc.id=net.id
10 июл 12, 17:49    [12846583]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
flexgen
Shakill
это вы о чем? distinct так не думает


Ты, видимо, об этом - http://msdn.microsoft.com/en-US/library/ms191270(v=sql.105).aspx

Care must be taken when comparing null values. The behavior of the comparison depends on the setting of the SET ANSI_NULLS option.

А как там у топик-стартера сделано - вопрос. Запрос то он нам не показал.
А вы проверять не пробовали, прежде чем писать? Делов на 30 секунд.
10 июл 12, 17:49    [12846585]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
Shakill
Member

Откуда: мск
Сообщений: 1880
seeerg_23
структура простейшая из 2х табл select distinct netbios name, cpu, network adapter, mac from pc inner join net on pc.id=net.id


еще несколько сообщений, и вы наконец-то покажете пример входных данных и полученного результата и поясните, чем полученное отличается от желаемого? :)
10 июл 12, 17:51    [12846597]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
seeerg_23
структура простейшая из 2х табл select distinct netbios name, cpu, network adapter, mac from pc inner join net on pc.id=net.id
Раз структура "простейшая", то ошибка "элементарнейшая".
10 июл 12, 17:51    [12846602]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
Shakill
еще несколько сообщений, и вы наконец-то покажете пример входных данных и полученного результата и поясните, чем полученное отличается от желаемого? :)
Это практической занятие в рамках тренинга по курсу "юный партизан".
10 июл 12, 17:52    [12846610]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 782
Гавриленко Сергей Алексеевич
А вы проверять не пробовали, прежде чем писать? Делов на 30 секунд.


Не раз и не два сталкивался с ситуацией когда при попытке связать таблицы по полю с NULL-значением результатом было "дублирование" данных. Опять-таки в данной ситуации мы не знаем что там происходит у топик-стартера.
10 июл 12, 17:59    [12846650]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
flexgen
Гавриленко Сергей Алексеевич
А вы проверять не пробовали, прежде чем писать? Делов на 30 секунд.


Не раз и не два сталкивался с ситуацией когда при попытке связать таблицы по полю с NULL-значением результатом было "дублирование" данных. Опять-таки в данной ситуации мы не знаем что там происходит у топик-стартера.
При чем здесь "связать" и distinct?
10 июл 12, 18:00    [12846656]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
flexgen
Гавриленко Сергей Алексеевич
А вы проверять не пробовали, прежде чем писать? Делов на 30 секунд.


Не раз и не два сталкивался с ситуацией когда при попытке связать таблицы по полю с NULL-значением результатом было "дублирование" данных. Опять-таки в данной ситуации мы не знаем что там происходит у топик-стартера.
Это как это? Сравнение null-значений дает ложь. Соединие по условию, которое дает ложь, не происходит. Откуда тут появляется дублирование и дублирование чего?
10 июл 12, 18:05    [12846688]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Гавриленко Сергей Алексеевич
Сравнение null-значений дает ложь.
Если точнее, то UNKNOWN.
А предикаты обычно любят TRUE

Однако. NULL в данной теме не при чём.
Можно о нём пока забыть.
10 июл 12, 21:27    [12847364]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
вот результат

К сообщению приложен файл. Размер - 17Kb
11 июл 12, 08:48    [12848503]     Ответить | Цитировать Сообщить модератору
 Re: как убрать в запросе задвоенные значения ??  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
seeerg_23,
И где же тут задвоенные строки??
А если у компа 2 видюхи,то результат повергнет вас в шок???
Да и
select distinct netbios name, cpu, network adapter, mac from pc inner join net on pc.id=net.id

и приведенный результат не сходятся.
11 июл 12, 09:23    [12848601]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить