Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 выбор данных по условию  [new]
Pavel2004
Member

Откуда:
Сообщений: 12
Никак не могу понять, как организовать цикл поиска или просто выбор нужного справочника по условию... т.е. у меня в одном столбце зашиты данные (символы), которые относятся к разным справочникам.
в Колонке (SP11791) 0 - относится к справочнику КонтрАгенты, 7L и BJ - справочнику Сотрудники, 57 - справочник Фирмы
Как указать нужный???

К сообщению приложен файл (Пример.xlsx - 8Kb) cкачать
19 июл 16, 17:10    [19428213]     Ответить | Цитировать Сообщить модератору
 Re: выбор данных по условию  [new]
правильный проходящий.
Guest
Pavel2004,
в 1с, из которой вы и собрались выдергивать данные, это реализовано через left join со всеми возможными для этого документа справочниками

select * from ...
left join Контрагенты k on ... SP1179 = ...
left join Сотрудники с on ... SP1179 = ...
where ... = k.что-то или ... = c.что-то
19 июл 16, 17:24    [19428268]     Ответить | Цитировать Сообщить модератору
 Re: выбор данных по условию  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Pavel2004,

SELECT 
*
FROM 
LEFT JOIN directory1
ON
 SP11791 = '0' AND
 условия
LEFT JOIN directory2
ON
 SP11791 = '7L' AND
 условия

хотя и пахнет извращением
19 июл 16, 17:26    [19428278]     Ответить | Цитировать Сообщить модератору
 Re: выбор данных по условию  [new]
Pavel2004
Member

Откуда:
Сообщений: 12
TaPaK, ничего не оставалось как сделать в справочнике еще одного "сотрудника" мнимого, (c ID - "IO") чтобы хоть как то заработало... а то при выборе одного справочника отсекаются все остальные и не все данные попадают...

INNER JOIN
dbo.СпрСотрудн ON
(CASE dbo.DT11804.SP11791 WHEN ' 0 ' THEN ' IO ' WHEN ' DS ' THEN ' IO ' WHEN ' G7 ' THEN ' IO ' ELSE dbo.DT11804.SP11791 END)
= dbo.СпрСотрудн.IDСотр
20 июл 16, 08:05    [19429606]     Ответить | Цитировать Сообщить модератору
 Re: выбор данных по условию  [new]
Pavel2004
Member

Откуда:
Сообщений: 12
0, DS, G7 - хотелось бы перенаправить в другие справочники.
20 июл 16, 08:10    [19429610]     Ответить | Цитировать Сообщить модератору
 Re: выбор данных по условию  [new]
Pavel2004
Member

Откуда:
Сообщений: 12
правильный проходящий.
Pavel2004,
в 1с, из которой вы и собрались выдергивать данные, это реализовано через left join со всеми возможными для этого документа справочниками

select * from ...
left join Контрагенты k on ... SP1179 = ...
left join Сотрудники с on ... SP1179 = ...
where ... = k.что-то или ... = c.что-то



left join - в данном случае не пойму как реализуется?
20 июл 16, 08:13    [19429614]     Ответить | Цитировать Сообщить модератору
 Re: выбор данных по условию  [new]
Pavel2004
Member

Откуда:
Сообщений: 12
правильный проходящий.,

дело в том, что почему то в колонке SP11791 собраны ID из разных справочников без дополнительного указания (т.е. не стоят слева или справа дополнительные символы указывающие на принадлежность к этим справочникам)... просто id
20 июл 16, 08:17    [19429623]     Ответить | Цитировать Сообщить модератору
 Re: выбор данных по условию  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1087
Pavel2004, ltkj
20 июл 16, 09:58    [19429926]     Ответить | Цитировать Сообщить модератору
 Re: выбор данных по условию  [new]
правильный проходящий.
Guest
Pavel2004
правильный проходящий.,

дело в том, что почему то в колонке SP11791 собраны ID из разных справочников без дополнительного указания (т.е. не стоят слева или справа дополнительные символы указывающие на принадлежность к этим справочникам)... просто id
Это называется "составной тип". Никаких указаний и не надо, просто в результате джойнов инфа будет только из нужного справочника, из остальных будут только null.
left join Контрагенты k on ... SP11791 = k.Id
left join Сотрудники с on ... SP11791 =c.Id
20 июл 16, 09:59    [19429928]     Ответить | Цитировать Сообщить модератору
 Re: выбор данных по условию  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1087
Pavel2004, дело в том, что id имеет формат char(9). Да еще и наверняка там справочник неопределенного типа хранят. Хот могу и ошибаться - 100 лет с клюшками дел не имел
20 июл 16, 10:00    [19429933]     Ответить | Цитировать Сообщить модератору
 Re: выбор данных по условию  [new]
trdm_
Member

Откуда: г. Ростов-на-Дону
Сообщений: 766
Курим: http://www.script-coding.com/v77tables.html
20 июл 16, 10:13    [19430002]     Ответить | Цитировать Сообщить модератору
 Re: выбор данных по условию  [new]
Pavel2004
Member

Откуда:
Сообщений: 12
правильный проходящий.,

Ок! Спасибо! Попробую все сейчас!
20 июл 16, 10:55    [19430190]     Ответить | Цитировать Сообщить модератору
 Re: выбор данных по условию  [new]
Pavel2004
Member

Откуда:
Сообщений: 12
trdm_,

Ок! Пересмотрю еще раз все. Всем спасибо!!!
20 июл 16, 10:56    [19430195]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить