Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с запросом / 5 сообщений из 5, страница 1 из 1
21.06.2002, 17:41:45
    #32033493
Александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
У меня три таблицы ТОВАРЫ - цены - Клиенты

ТОВАРЫ goods
goodId,
Name

Цены price - цена на товары (goodId) Поставщика или Производителя (ClientId)
price
goodId
ClientId


Клиенты clients
Name,
ClientId,
type - имеет значение либо Поставщик, либо Производитель

Необходимо создать запрос, который показывает цены на товары
Наименование ! Поставщик ! цена поставщика ! Производитель ! Цена производителя

Необходимо отметить, что возможна ситуация есть цена поставщика и отсутствует цена Производителя и наоборот....

запрос типа
select
g.Name Наименование, c2.name Производитедь, p2.Price, c.name Поставщик, p.Price
FROM goods g

join prices p2
ON
g.GoodId = p2.GoodId

join clients_old c2
on
p2.ClientId = c2.cod and
c2.Type Like 'Постав%'

join prices p
ON
g.GoodId = p.GoodId

join clients_old c
on
p.ClientId = c.cod and
c.Type Like 'произ%'

отображает только те позиции где есть поставщик и Производитель

возможна ситуация есть цена поставщика и отсутствует цена Производителя и наоборот.... Данные строчки должны быть тоже отображены.
...
Рейтинг: 0 / 0
21.06.2002, 18:29:52
    #32033509
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Если я не ошибаюсь, то по умолчанию join всегда inner, обратите внимание на outer joins, left и right.
...
Рейтинг: 0 / 0
24.06.2002, 11:50:15
    #32033598
Александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Спасибо за совет, но с Left тоже не получается

а вот outer joins - это интерестно
Александр
...
Рейтинг: 0 / 0
24.06.2002, 14:23:32
    #32033625
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
2 Александр
Так а Left это и есть один из outer joins, которые могут быть left, right и full, только full даст декартово произведение таблиц, а это может оказаться страшной весчью в плане производительности.
...
Рейтинг: 0 / 0
24.06.2002, 14:29:38
    #32033627
genie_vats
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
... left join
clients_old c2
on
p2.ClientId = c2.cod and
(c2.Type Like 'Постав%' or c2.Type is Null)

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


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