Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 26.01.2018, 15:42   #1
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 151
Репутация: 10
По умолчанию вывод отсутствующих в таблице полей sql

Помогите пожалуйста! Никак не получается!
Есть 2 таблицы в бд MS SQL Server: Stand и stBOReferences. Необходимо вывести все записи в таблице Stand, которые не существуют в таблице stBOReferences. Основными полями для сравнительного анализа являются: в таблице Stand поле Stand_id с записями следующего типа, например, 1115; в таблице stBOReferences поле stGuit с записями типа, например, STD^11155.

все примеры с выводом несуществующих записей таблице, приведенные пользователями и рассматриваемые мной, связаны с одинаковым набором данных. в моем случае тип данных разные. поэтому у меня никак не получается сделать необходимое.
Etsareva вне форума   Ответить с цитированием
Старый 26.01.2018, 15:51   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,089
Репутация: 6385
По умолчанию

Цитата:
записями следующего типа, например, 1115
Это пример значения, а не типа. Тип это строковый, числовой целый или плавающий и т.п. Для сравнения числового со строкой преобразуй число в строку и там еще LIKE потребуется скорее всего. А еще может оказаться, что в одном месте STD^11155, а в другом UUUUU-11155 или 11155АБЦ. Не?
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 26.01.2018, 15:57   #3
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 151
Репутация: 10
По умолчанию

нет, такого не может быть
Etsareva вне форума   Ответить с цитированием
Старый 26.01.2018, 15:59   #4
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 151
Репутация: 10
По умолчанию

такого не может быть. уже все варианты переделала, которые Вы предложили. никак не получается...
Etsareva вне форума   Ответить с цитированием
Старый 26.01.2018, 16:02   #5
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,089
Репутация: 6385
По умолчанию

Так покажи свои варианты, структуры таблиц и примеры записей в них

ps я еще ни чего предложить не успел ))
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 26.01.2018, 16:08   #6
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 151
Репутация: 10
По умолчанию

SELECT * FROM Standart.dbo.Stand WHERE cast (stand.Stand_ID as varchar) not in
(SELECT stGUID FROM КТД.dbo.stBOReferences WHERE Stand_ID LIKE 'STD^%')
код, который я попробовала написать.
Изображения
Тип файла: png 1.png (3.5 Кб, 16 просмотров)
Тип файла: png 2.png (20.4 Кб, 16 просмотров)
Etsareva вне форума   Ответить с цитированием
Старый 26.01.2018, 16:18   #7
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 151
Репутация: 10
По умолчанию

данные таблицы stBOReferences
Изображения
Тип файла: png 3.png (8.7 Кб, 16 просмотров)
Etsareva вне форума   Ответить с цитированием
Старый 26.01.2018, 16:21   #8
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 151
Репутация: 10
По умолчанию

из таблицы stBOReferences мне нужно выбирать только те записи, которые имеют данные STD^ или ERE^.
Etsareva вне форума   Ответить с цитированием
Старый 26.01.2018, 16:38   #9
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,089
Репутация: 6385
По умолчанию

Так пробуй
Код:

SELECT S.* 
  FROM Standart.dbo.Stand S
  WHERE NOT EXISTS (
    SELECT 0 
      FROM  КТД.dbo.stBOReferences V
      WHERE V.stGUID='STD^'+CAST(S.Stand_ID as varchar()) OR V.stGUID='ERE^'+CAST(S.Stand_ID as varchar()))

или так
Код:

SELECT S.* 
  FROM Standart.dbo.Stand S
    LEFT JOUN КТД.dbo.stBOReferences V ON V.stGUID='STD^'+CAST(S.Stand_ID as varchar()) OR V.stGUID='ERE^'+CAST(S.Stand_ID as varchar())
  WHERE V.stGUID IS NULL

__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 26.01.2018, 16:47   #10
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 151
Репутация: 10
По умолчанию

Снимаю перед Вами шляпу! Огромнейшее Вам спасибо!!!
Etsareva вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка в одной таблице отсутствующих значений в другой Andrej_K SQL, базы данных 6 08.11.2014 05:10
Проблемы с отображением полей в сводной таблице Вадичок Microsoft Office Excel 3 09.01.2013 01:50
Подсчет полей в таблице Arkatic Общие вопросы C/C++ 0 10.05.2009 22:52
Вычисление итоговых полей в сводной таблице manisha Microsoft Office Excel 5 03.05.2009 15:05
Слияние шаблона с данными из таблице, и как подсичтать значение количества полей в таблице n4ela Microsoft Office Access 3 07.03.2009 13:04


09:46.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru