Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема с выводом / 14 сообщений из 14, страница 1 из 1
05.07.2018, 09:23
    #39669818
arslanov_a
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом
Добрый день. Прошу проконсультировать. Связал три таблицы, работает, но при добавлении условия 'Определение недостающей информации' ничего не выводит, и без ошибок. С чем это может быть связано?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
 
select
c.Number
from
[Case] c 
left join Activity act on (c.ParentActivityId = act.Id)
left join ActivityCategory actc on (act.ActivityCategoryId = actc.Id)
where actc.Name = 'Определение недостающей информации'
...
Рейтинг: 0 / 0
05.07.2018, 09:29
    #39669820
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом
arslanov_a,

"actc.Name = " уберите под join иначе вы получаете INNER JOIN вместо ваших LEFT
...
Рейтинг: 0 / 0
05.07.2018, 09:29
    #39669821
Посетитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом
arslanov_a,

написав данное условие в where вы превратили свой left join в inner join

либо перенесите в on, либо обработайте вариант с actc.Name is null
...
Рейтинг: 0 / 0
05.07.2018, 09:45
    #39669827
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом
TaPaKarslanov_a,

"actc.Name = " уберите под join иначе вы получаете INNER JOIN вместо ваших LEFTИМХО ему и нужен INNER JOIN
arslanov_aСвязал три таблицы, работает, но при добавлении условия 'Определение недостающей информации' ничего не выводит, и без ошибок. С чем это может быть связано?С тем, что нет записей, подходящих под ваши условия.
Выведите те записи из этих трёх таблиц, которые, по вашему мнению, должны связаться в запросе, и внимательно посмотрите на них, проанализируйте.
...
Рейтинг: 0 / 0
05.07.2018, 11:17
    #39669902
arslanov_a
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом
TaPaK"actc.Name = " уберите под join иначе вы получаете INNER JOIN вместо ваших LEFT

Думаю да, проблема в этом. Подскажите пожалуйста, куда вы имеете ввиду убрать? sql только изучаю. Спасибо.
...
Рейтинг: 0 / 0
05.07.2018, 15:04
    #39670088
arslanov_a
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом
TaPaK,

Убрал под join, но фильтр то нужный мне, не применяется. Он показывает все номера таблицы Case.

Код: sql
1.
2.
3.
4.
5.
6.
7.
select
c.Number
from
[Case] c
left join Activity on Activity.Id = c.ParentActivityId
left join ActivityCategory on (ActivityCategory.Id = Activity.ActivityCategoryId) 
and (ActivityCategory.Name = 'Определение недостающей информации')
...
Рейтинг: 0 / 0
05.07.2018, 15:06
    #39670092
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом
arslanov_a,

сначала опеделитесь что же вам надо
...
Рейтинг: 0 / 0
05.07.2018, 15:18
    #39670100
arslanov_a
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом
TaPaK,

Нужны все номера таблицы Case, где где есть название 'Определение недостающей информации' таблицы ActivityCategory.
Case связан только с Activity, а Activity связан только с ActivityCategory
...
Рейтинг: 0 / 0
05.07.2018, 15:31
    #39670114
londinium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом
arslanov_a,
авторНужны все номера таблицы Case, где где есть название 'Определение недостающей информации' таблицы ActivityCategory.

Давайте тогда по шагам:
Код: sql
1.
2.
3.
SELECT TOP 5 A.*
FROM ActivityCategory A
WHERE A.[NAME]='Определение недостающей информации'


возвращает записи?
...
Рейтинг: 0 / 0
05.07.2018, 15:37
    #39670116
arslanov_a
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом
londinium,

да, возвращает
...
Рейтинг: 0 / 0
05.07.2018, 15:43
    #39670124
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом
arslanov_aда, возвращаетА такой?
Код: sql
1.
2.
3.
4.
SELECT TOP 5 A.*
FROM ActivityCategory AC
join Activity A on AC.Id = A.ActivityCategoryId
WHERE AC.[NAME]='Определение недостающей информации'
...
Рейтинг: 0 / 0
05.07.2018, 15:55
    #39670144
arslanov_a
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом
alexeyvg,

Да, возвращает
...
Рейтинг: 0 / 0
05.07.2018, 15:57
    #39670145
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом
alexeyvg,
offtop
ложечку за маму, ложечку за dba
...
Рейтинг: 0 / 0
05.07.2018, 18:51
    #39670244
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом
arslanov_aalexeyvg,

Да, возвращаетЗначит, выборка:
Код: sql
1.
2.
3.
select *
from [Case] c
where ParentActivityId = <то значение Id, которое вам вернуло в предыдущем запросе>

ничего не возвращает?
Тогда получается, что в [Case] просто нет записей, которые относятся к той Activity, которая относится к той категории, имя которой 'Определение недостающей информации'
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема с выводом / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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