Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выборка к двум базам одноверменно, Один запрос к двум базам 
:(
    Опции темы
ckopn
Дата 6.8.2007, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Есть две базы на одном сервере MS SQL 2000. 
например 
база 1 таблица 1 база 2 таблица 2 
--------------             ----------------- 
Машина Номер       Авто Номер 
--------------              ----------------- 
Лада 1                       Лада 1 
Альфромео 2         Феррари 4 
Бугатти 3                Бугатти 3 

Как выбрать из этих баз вот такую таблицу?: 
--------------- 
Машина Номер 
--------------- 
Альфрамео 2 
Феррари 4 

Т.е. строки которые есть только в одной таблице и нет в другой. 

PM MAIL   Вверх
ckopn
Дата 6.8.2007, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Неужели это невозможно средствами SQL?
PM MAIL   Вверх
LuMee
Дата 6.8.2007, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



Почему невозможно? Можно так:
Код

SELECT DISTINCT Машина, Номер
FROM База1.dbo.Таблица1 AS Таб1
WHERE NOT EXISTS 
   (SELECT Таб2.Номер FROM База2.dbo.Таблица2 AS Таб2
    WHERE Таб1.Машина = Таб2.Авто AND Таб1.Номер = Таб2.Номер)

UNION

SELECT DISTINCT Авто, Номер
FROM База2.dbo.Таблица2 AS Таб2
WHERE NOT EXISTS 
   (SELECT Таб1.Номер FROM База1.dbo.Таблица1 AS Таб1
    WHERE Таб1.Машина = Таб2.Авто AND Таб1.Номер = Таб2.Номер)

ну или что-то наподобие
PM MAIL   Вверх
andrx
Дата 6.8.2007, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Андрей
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 16.12.2005
Где: Киев

Репутация: 1
Всего: 4



SELECT [МАШИНЫ].[MN],[МАШИНЫ].[A] FROM [АВТО] RIGHT JOIN [МАШИНЫ] ON [МАШИНЫ].[A] = [АВТО].[A] WHERE [АВТО].[A] IS NULL
UNION
SELECT NULL,[АВТО].[A] FROM [АВТО] LEFT JOIN [МАШИНЫ] ON [МАШИНЫ].[A] = [АВТО].[A] WHERE [МАШИНЫ].[A] IS NULL


-------------------------------
[АВТО]
[MN]    [A]
1         авто1     
2         авто2     

-------------------------------
[МАШИНЫ]
[AN]    [A]
101       авто1
103       авто3      

-------------------------------
результат
[MN]         [A]
NULL    авто2     
103        авто3     


Это сообщение отредактировал(а) andrx - 6.8.2007, 15:32
--------------------
Лучше скажи мало, но хорошо. (Козьма Прутков)
PM MAIL ICQ   Вверх
ckopn
Дата 9.8.2007, 07:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Спасибо, все сработало!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0422 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.