powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сравнение столбцов
21 сообщений из 21, страница 1 из 1
Сравнение столбцов
    #38435069
BIS-10-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется две таблицы: Основное оборудование и подоборудование. Связаны они через id. Не у каждого оборудования может быть подоборудование. Нужно к названию оборудования, у которого подоборудование отсутствует дописать "_неисправно" и вывести список этих оборудований. Пытался через сравнение id, но тупо выводится оборудование с несоответствующим подоборудованием.
update dop_obor1 s
set s.naimenovanie=s.naimenovanie+'_неисправно'
where s.id<>(select idob1 from dop_obor2)
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38435143
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BIS-10-2,

и зачем для этого делать update? Тут достаточно SELECT + EXISTS
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38435876
BIS-10-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис, я прочитал и узнал, что такое exists. Если я правильно понял, то он берет подзапрос как аргумент и оценивает его
как верный если тот производит любой вывод или как неверный если тот не делает этого. Вот то, как я понимаю как должен работать exists в моем случае: подзапрос определяет есть ли у оборудования какое-нибудь подоборудование(а делает он это благодаря связи id оборудования с id подоборудования) после чего exists возвращает true(и тут возникает вопрос:exists возвращает значение true(false) для каждого оборудования? ), и как это использовать чтобы получить список оборудования, у которого нет подоборудования и добавить к их именам "_неисправно"? Честное слово, мне в голову не приходит!
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38435889
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BIS-10-2,

элементарно
not exists
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38435904
BIS-10-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
select d1.naimenovanie, d2.naimenovanie from dop_obor1 d1
join dop_obor2 d2 on d1.id=d2.idob1
where not exists
(
select d1.naimenovanie, d2.naimenovanie from dop_obor1 d1
join dop_obor2 d2 on d1.id=d2.idob1
);
ничего не выводит((
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38435909
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BIS-10-2,

потому как нет связи между запросом и подзапросом
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38435918
BIS-10-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис, а как замутить?
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38435936
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BIS-10-2,

Привести структуру таблиц (ключевые поля) и что в этих полях находится (для примера). Гадать на кофейной гуще, что у тебя за данные - никто не будет.
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38435950
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BIS-10-2а как замутить?
Втыканием случайных операторов в случайные места запроса, как ты сейчас делаешь, конечно,
можно. Рано или поздно что-нибудь получится (как у тех обезьян с Шекспиром). Но лучше таки
прочитать учебник по SQL.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38435954
BIS-10-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster,
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38435984
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BIS-10-2,

Код: plsql
1.
2.
3.
select OBORUDOVANIE.NAIMENOVANIE,
         IIF((SELECT COUNT(ID) FROM PODBORUDOVANIE WHERE PODOBORUDOVANIE.IDOB1=OBORUDOVANIE.ID)=0,'НЕТУ','ЕСТЬ')
from OBORUDOVANIE
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38436372
BIS-10-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster, как вывести только те наименования, у которых нет подоборудования?
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38436389
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BIS-10-2,
Код: sql
1.
2.
select ... from «Оборудование»
left join «Подоборудование» ...
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38436408
NikolayV81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BIS-10-2,
Код: sql
1.
2.
3.
4.
5.
select o.id, trim(coalesce (o.NAIMENOVANIE,''))||', неисправно' as NAIMENOVANIE
  from OBORUDOVANIE o
     left join PODOBORUDOVANIE po
       on ( po.IDOB1=o.ID )
  where po.id is null



Утро, солнышко...
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38436412
NikolayV81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovBIS-10-2а как замутить?
Втыканием случайных операторов в случайные места запроса, как ты сейчас делаешь, конечно,
можно. Рано или поздно что-нибудь получится (как у тех обезьян с Шекспиром). Но лучше таки
прочитать учебник по SQL.


А я вот подумал, с одной стороны конечно лучше направлять людей по правильному с точки зрения образования пути, а с другой стороны, они же вырастут, выйдут на рынок, и будут сбивать уровень зарплаты, зачем растить лишнюю конкуренцию, может лучше тупо ответ привести ;) ( даже сильно не вникая в суть вопроса поставленного таким образом )
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38436666
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BIS-10-2DarkMaster, как вывести только те наименования, у которых нет подоборудования?

Слушай, ну прочти уже Грабера, ладно? Там не так уж много и даже картинки есть ;)
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38437198
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster,

Грабер есть в двух вариантах. Один старый, джойнов нет, другой поновее, джойны есть. Но вроде есть только в сугубо описательно-справочном виде.
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38437433
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, kdv!
You wrote on 22 октября 2013 г. 18:10:01:

kdv> Грабер есть в двух вариантах. Один старый...
на самом деле вариантов три.

Understanding SQL (окаменевшее дерьмо мамонта)

Mastering SQL (то что нужно неофитам)

SQL Instant Reference (справочник)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38437441
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvDarkMaster,

Грабер есть в двух вариантах. Один старый, джойнов нет, другой поновее, джойны есть. Но вроде есть только в сугубо описательно-справочном виде.

Основы нужны. А то - "Я прочитал про EXISTS, я прочитал про SELECT...."

P.S. Ой, что будет когда до INSERT FROM SELECT дойдет ;)
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38437572
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийMastering SQL (то что нужно неофитам)
у нас оно идет как SQL, бестселлер. Первая - как "понимание" или "введение".
МимопроходящийSQL Instant Reference (справочник)
да, но вместо него лучше читать langref.pdf от ИБ 6 плюс langref update Firebird 2.5.
разве только если с английским совсем плохо.
...
Рейтинг: 0 / 0
Сравнение столбцов
    #38442966
BIS-10-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NikolayV81, спасибо за помощь! Но возникает вопрос, зачем мы используем trim, coalesce ведь у нас в столбце нет нулевых значений и нет пробелов кроме тех, что имеются между словами?
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сравнение столбцов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]