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

Откуда:
Сообщений: 6
Добрый день, вы не могли бы пожалуйста подсказать как сделать запрос к таблице?

Есть таблица с множеством строк из которых мне нужны только две, я делаю запрос:

select "Столбец А", "Столбец Б"
from table

и получаю таблицу такого вида:

Столбец А Столбец Б
Amy host1
Bob host2
Carl host3
Andy host4
Amy host9999
Carl host3
Carl host3
Andy host4
Andy host8888
Bob host2

Далее мне необходимо вывести только те строки, где значения в Столбец Б отличаются с привязкой к Столбец А, т.е. на выходе должна появиться таблица:

Столбец А Столбец Б
Amy host1
Amy host9999
Andy host4
Andy host8888

Как видно, запрос вывел только те строки, где Столбец Б по ходу таблицы был разный с привязкой к Столбец А и не вывел строки с Bob и Carl, т.к у них Столбец Б всегда был одинаковый.

Попробовал сделать через

select "Столбец А", "Столбец Б"
from table t1
where exists (select "Столбец А", "Столбец Б"
from table t2
where t1."Столбец Б"<>t2."Столбец Б"
and t1."Столбец А"=t2."Столбец А"
and t1."Столбец Б"=t2."Столбец Б")

но результат пустой, хотя я точно знаю, что имеются строки, где Столбец Б различается относительно Столбец А.

Помогите пожалуйста разобраться
10 дек 17, 16:22    [21021866]     Ответить | Цитировать Сообщить модератору
 Re: выбор строк с разными значениями  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20482
SELECT DISTINCT t1.*
FROM table t1, table t2
WHERE t1.name = t2.name
  AND t1.host != t2.host
10 дек 17, 16:42    [21021895]     Ответить | Цитировать Сообщить модератору
 Re: выбор строк с разными значениями  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20482
4everanoob
where t1."Столбец Б" <> t2."Столбец Б" 
  and t1."Столбец А"=t2."Столбец А"
  and t1."Столбец Б" =  t2."Столбец Б"
10 дек 17, 16:44    [21021900]     Ответить | Цитировать Сообщить модератору
 Re: выбор строк с разными значениями  [new]
4everanoob
Member

Откуда:
Сообщений: 6
Akina,

как я могу объединить два запроса в одну таблицу?

SELECT [Столбец 4], [Столбец 5]
FROM table

и

SELECT DISTINCT t1.*
FROM table t1, table t2
WHERE t1.[Столбец 5] = t2.[Столбец 5]
AND t1.[Столбец 4] != t2.[Столбец 4]

и отсортировать по [Столбец 5] от А до Я?
Вы бы меня очень выручили
10 дек 17, 18:09    [21022013]     Ответить | Цитировать Сообщить модератору
 Re: выбор строк с разными значениями  [new]
4everanoob
Member

Откуда:
Сообщений: 6
4everanoob
Akina,

как я могу объединить два запроса в одну таблицу?

SELECT [Столбец 4], [Столбец 5]
FROM table

и

SELECT DISTINCT t1.*
FROM table t1, table t2
WHERE t1.[Столбец 5] = t2.[Столбец 5]
AND t1.[Столбец 4] != t2.[Столбец 4]

и отсортировать по [Столбец 5] от А до Я?
Вы бы меня очень выручили


т.е. чтобы на выходи получить именно одну таблицу вида

Amy host1
Amy host9999
Andy host4
Andy host8888

с двумя столбцами и по алфавиту
10 дек 17, 18:11    [21022020]     Ответить | Цитировать Сообщить модератору
 Re: выбор строк с разными значениями  [new]
baracs
Member

Откуда: Москва
Сообщений: 7200
4everanoob
как я могу объединить два запроса в одну таблицу?
"Объединить" - это что значит?
JOIN или UNION?
10 дек 17, 18:31    [21022059]     Ответить | Цитировать Сообщить модератору
 Re: выбор строк с разными значениями  [new]
4everanoob
Member

Откуда:
Сообщений: 6
baracs
4everanoob
как я могу объединить два запроса в одну таблицу?
"Объединить" - это что значит?
JOIN или UNION?


Есть таблица table с множеством столбцов, из который мне нужны только Столбец 5 и Столбец 4 и результат

SELECT DISTINCT t1.*
FROM table t1, table t2
WHERE t1.[Столбец 5] = t2.[Столбец 5]
AND t1.[Столбец 4] != t2.[Столбец 4]

нужно вывести только для этих двух столбцов по алфавиту относительно Столбец 5
10 дек 17, 18:39    [21022070]     Ответить | Цитировать Сообщить модератору
 Re: выбор строк с разными значениями  [new]
4everanoob
Member

Откуда:
Сообщений: 6
Т.е. нужно объединение двух SQL запросов к одной таблице table

Запрос 1: отобразить только [Столбец 4], [Столбец 5] из table

Запрос 2: отобразить строки только согласно запросу
SELECT DISTINCT t1.*
FROM table t1, table t2
WHERE t1.[Столбец 5] = t2.[Столбец 5]
AND t1.[Столбец 4] != t2.[Столбец 4]

и отсортировать по алфавиту относительно значениям [Столбец 5]
10 дек 17, 18:48    [21022089]     Ответить | Цитировать Сообщить модератору
 Re: выбор строк с разными значениями  [new]
4everanoob
Member

Откуда:
Сообщений: 6
я думал что то вроде этого

select (
select [Столбец 4], [Столбец 5]
from table
SELECT DISTINCT t1.*
FROM table t1, table t2
WHERE t1.[Столбец 5] = t2.[Столбец 5]
AND t1.[Столбец 4] != t2.[Столбец 4]
)
from table
group by [Столбец 5]

но ругается на закрывающую скобку
10 дек 17, 18:55    [21022103]     Ответить | Цитировать Сообщить модератору
 Re: выбор строк с разными значениями  [new]
baracs
Member

Откуда: Москва
Сообщений: 7200
4everanoob
baracs
пропущено...
"Объединить" - это что значит?
JOIN или UNION?


Есть таблица table с множеством столбцов, из который мне нужны только Столбец 5 и Столбец 4 и результат

SELECT DISTINCT t1.*
FROM table t1, table t2
WHERE t1.[Столбец 5] = t2.[Столбец 5]
AND t1.[Столбец 4] != t2.[Столбец 4]

нужно вывести только для этих двух столбцов по алфавиту относительно Столбец 5
Яснее не стало.
Смутно подозреваю, что вам их нужно" сджойнить". Сходите по приведенной выше ссылке или сюда, посмотрите какие бывают соединения (join) и как они делаются.

З.Ы. здесь тоже INNER JOIN, только используется старый синтаксис, который стремятся изжить.
10 дек 17, 19:20    [21022198]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить