2013-12-02 5 views
0

Я новичок здесь и новичок в SQL. Я искал, но я не могу найти ответ на мой вопрос. Возможно, вам помогут гуру. У меня есть таблица, в которой есть идентификационные номера клиентов и их статус (число). Например, несколько строк будут выглядеть так:SQL-запрос для сравнения нескольких строк

 
Status - ACCTnum - CustName - City - State 

95 - A330 - Billy Burger - Cleveland - Oh 
11 - A330/Q - Billy Burger Store#2 - Cleveland - Oh 
15 - B250 - Spanky - Columbus - Oh 
15 - B250/Z - Spanky#2 - Springfield - OH 
15 - B250/Y - Spanky#3 - Miami - FL

Мы видим здесь, есть главный номер счета, а также вспомогательный номер счета, но они занимают такое же поле. Счет A330 - billy burger, а его второй магазин - A330/Q. Столбец статуса - номер своего продавца. Если число равно 95, это мертвая учетная запись. Проблема состоит в том, что для наших целей статус основной учетной записи не может быть мертв, если подзаголовок имеет хорошую репутацию. Таким образом, мне нужен запрос, который может в основном выбирать любые записи, которые отвечают критериям: «Если ACCTnum имеет статус 95 и имеет дочерние учетные записи, которые не являются статусом 95»

В идеале, если я выполнил запрос в таблице выше, должен вернуть первые две записи, так как A330 - это статус 95, а A330/Q - нет. Он должен игнорировать другие записи.

Я пробовал команду INTERSECT без каких-либо успехов (полагаю, потому что он работает только для двух разных таблиц?). Я полный SQL n00b, будьте осторожны;)

+0

Вам нужно присоединиться к себе. – Shiva

ответ

1
select distinct c1.* 
from Customers c1 
inner join Customers c2 ON c2.ACCTnum LIKE c1.ACCTnum + '%' 
where c1.ACCTnum.status = 95 and c2.ACCTnum <> 95 
+0

Спасибо за подсказку. Я получаю следующую ошибку: Msg 156, Level 15, State 1, Line 3 Неверный синтаксис рядом с ключевым словом «Где». – user3059028

+0

кричит. это должно быть 'ON'. Исправлено в ответе. –

+0

Я знаю, что он не использует поле комментариев для «Спасибо». Но спасибо" ;). Я закончил делать это несколько иначе, но вы указали мне в правильном направлении с Join. – user3059028

Смежные вопросы