Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сравнение столбцов / 21 сообщений из 21, страница 1 из 1
21.10.2013, 09:50:29
    #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
21.10.2013, 10:42:11
    #38435143
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение столбцов
BIS-10-2,

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

элементарно
not exists
...
Рейтинг: 0 / 0
21.10.2013, 17:23:18
    #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
21.10.2013, 17:25:46
    #38435909
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение столбцов
BIS-10-2,

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

Привести структуру таблиц (ключевые поля) и что в этих полях находится (для примера). Гадать на кофейной гуще, что у тебя за данные - никто не будет.
...
Рейтинг: 0 / 0
21.10.2013, 17:47:26
    #38435950
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение столбцов
BIS-10-2а как замутить?
Втыканием случайных операторов в случайные места запроса, как ты сейчас делаешь, конечно,
можно. Рано или поздно что-нибудь получится (как у тех обезьян с Шекспиром). Но лучше таки
прочитать учебник по SQL.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
21.10.2013, 17:48:20
    #38435954
BIS-10-2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение столбцов
DarkMaster,
...
Рейтинг: 0 / 0
21.10.2013, 18:02:11
    #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
22.10.2013, 07:51:20
    #38436372
BIS-10-2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение столбцов
DarkMaster, как вывести только те наименования, у которых нет подоборудования?
...
Рейтинг: 0 / 0
22.10.2013, 08:32:16
    #38436389
m_Sla
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение столбцов
BIS-10-2,
Код: sql
1.
2.
select ... from «Оборудование»
left join «Подоборудование» ...
...
Рейтинг: 0 / 0
22.10.2013, 09:18:30
    #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
22.10.2013, 09:23:40
    #38436412
NikolayV81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение столбцов
Dimitry SibiryakovBIS-10-2а как замутить?
Втыканием случайных операторов в случайные места запроса, как ты сейчас делаешь, конечно,
можно. Рано или поздно что-нибудь получится (как у тех обезьян с Шекспиром). Но лучше таки
прочитать учебник по SQL.


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

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

Грабер есть в двух вариантах. Один старый, джойнов нет, другой поновее, джойны есть. Но вроде есть только в сугубо описательно-справочном виде.
...
Рейтинг: 0 / 0
22.10.2013, 18:18:18
    #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
22.10.2013, 18:22:20
    #38437441
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение столбцов
kdvDarkMaster,

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

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

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


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