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

Откуда:
Сообщений: 355
Здр-те!

select kl_kod,kl_nam,kl_kodstr,ml_kodv,ml_lc,ml_dateo from dbmaslc dbmaslc left outer join klient klient on dbmaslc.ml_kodkl= klient.kl_kod where kl_kod>1 and ml_datez is NULL так я получаю список клиентов с не закрытыми счетами.

Имеется еще 3-я таблица - учредители клиентов, т.е. из спр клиентов открываем юридического клиента и в откр форме заполняем учредителей.

Проблема такая, нужно объединить 3 таблицы.

Во всех таблицах есть общее поле kl_kod. С 2 таблицами у меня получается, но вот с 3 таблицами ни как, да еще мы должны получить список с наименованием клиентов, с их счетами и учредителями.
Как можно решить эту задачу?
17 мар 15, 13:31    [17394457]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
ularsoft
Как можно решить эту задачу?

Путем добавления в текс запроса еще одного join
17 мар 15, 13:32    [17394468]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
ularsoft,

во-первых, почему не в теге SRС? Что мне теперь делать с моими глазами?!
во-вторых, WHERE kl_kod>1 обеспечивает отбрасывание всего,
что было добавлено в результат SELECTа благодаря LEFT JOIN.
в-третьих, какой смысл в алиасе dbmaslc для таблицы dbmaslc и в алиасе klient для таблицы klient?
17 мар 15, 13:37    [17394492]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
ularsoft
Member

Откуда:
Сообщений: 355
WHERE kl_kod>1 с этим условием в список не попадет клиент с кодом 1
17 мар 15, 13:41    [17394510]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
ularsoft
WHERE kl_kod>1 с этим условием в список не попадет клиент с кодом 1
и запись, в которой kl_kod IS NULL
17 мар 15, 13:42    [17394522]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
ularsoft
Member

Откуда:
Сообщений: 355
и запись, в которой kl_kod IS NULL

is NULL относиться к поле ml_datez - дата закрытия счета
17 мар 15, 13:48    [17394540]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
ularsoft
WHERE kl_kod>1 с этим условием в список не попадет клиент с кодом 1

И заодно все записи dbmaslc, которым не нашлось совпадения по on dbmaslc.ml_kodkl= klient.kl_kod
Вы сами представляете, какой результат хотите получить ?

Сообщение было отредактировано: 17 мар 15, 13:52
17 мар 15, 13:51    [17394559]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
ularsoft
и запись, в которой kl_kod IS NULL

is NULL относиться к поле ml_datez - дата закрытия счета
А LEFT JOIN - ко всем полям klient
17 мар 15, 13:51    [17394560]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
ularsoft
Member

Откуда:
Сообщений: 355
Glory
ularsoft
Как можно решить эту задачу?

Путем добавления в текс запроса еще одного join

какой join, inner или outer?
17 мар 15, 13:54    [17394570]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
ularsoft
Glory
пропущено...

Путем добавления в текс запроса еще одного join

какой join, inner или outer?

Это уж вам решать.
Конечный результат вы же не оглашаете. Наверное ввиду его секретности.
17 мар 15, 13:56    [17394577]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
ularsoft
Glory
пропущено...

Путем добавления в текс запроса еще одного join

какой join, inner или outer?
Вам надо внимательно-внимательно прочитать всё про JOINы.
Потому что Вы с самого начала плаваете. И не понимаете мои слова, например.
17 мар 15, 13:57    [17394589]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
ularsoft,

вот, например, в написанном Вами в первом сообщении SELECTе что INNER JOIN, что LEFT OUTER JOIN - абсолютно всё равно.
На что я и пытался намекнуть.

Совет: перенесите все условия, связанные с klient, из WHERE в ON.
По крайней мере это будет логичнее.
17 мар 15, 14:00    [17394603]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
ularsoft
Member

Откуда:
Сообщений: 355
SELECT c.kl_kod,c.kl_nam,m.kl_kodstr,m.ml_kodv,m.ml_lc,m.ml_dateo,s.p_kl_kod,s.p_name FROM klient c JOIN dbmaslc m ON c.kl_kod = m.ml_kodkl JOIN (SELECT s.p_kl_kod,s.p_name FROM spromoter s ON c.kl_kod = s.p_kl_kod) where kl_kod>1 and ml_datez is NULL

Incorrect syntax near the keyword 'ON'. Что я не правильно делаю?
17 мар 15, 14:10    [17394662]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
ularsoft
SELECT c.kl_kod,c.kl_nam,m.kl_kodstr,m.ml_kodv,m.ml_lc,m.ml_dateo,s.p_kl_kod,s.p_name FROM klient c JOIN dbmaslc m ON c.kl_kod = m.ml_kodkl JOIN (SELECT s.p_kl_kod,s.p_name FROM spromoter s ON c.kl_kod = s.p_kl_kod) where kl_kod>1 and ml_datez is NULL

Incorrect syntax near the keyword 'ON'. Что я не правильно делаю?

Зачем после 2го join-а какой то запрос в скобках ?
Чем 2ой join залужил этого в отличии от 1го join-а ?
Вы что не в состоянии написать два раза одинаковый по синтаксису join ?
17 мар 15, 14:13    [17394677]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
ularsoft,

Вы не намерены пользоваться тегом SRC?
Тогда прощайте.
17 мар 15, 14:13    [17394679]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
ularsoft
Member

Откуда:
Сообщений: 355
iap
ularsoft,
Вы не намерены пользоваться тегом SRC?
Тогда прощайте.

Что такое тег SRC?
17 мар 15, 14:15    [17394694]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
ularsoft
iap
ularsoft,
Вы не намерены пользоваться тегом SRC?
Тогда прощайте.

Что такое тег SRC?


К сообщению приложен файл. Размер - 68Kb
17 мар 15, 14:19    [17394719]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
ularsoft
Member

Откуда:
Сообщений: 355
Короче, вот так
SELECT c.kl_kod,c.kl_nam,c.kl_kodstr,s.p_kl_kod,s.p_name
FROM bankadm.klient c JOIN bankadm.spromoter s ON c.kl_kod = s.P_kl_kod
where kl_kod>1
я получаю список клиентов без лицевых счетов с учредителями, тут могут быть и закрытые счета :(
17 мар 15, 14:33    [17394793]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
ularsoft
я получаю список клиентов без лицевых счетов с учредителями, тут могут быть и закрытые счета :(

И долго вы намерены повторять эту "мантру" ?
17 мар 15, 14:36    [17394810]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
ularsoft
Member

Откуда:
Сообщений: 355
Я вчера думал, думал... оказывается не так надо... А нужен список с действующими клиентами, их ИИН, учредители. Запрос который я делал вытаскивает мне только те клиенты, у которого имеются учредители. Есть еще клиенты с не заполненными учредителями.
18 мар 15, 06:52    [17397424]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить