powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с запросом
5 сообщений из 5, страница 1 из 1
Помогите с запросом
    #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
Помогите с запросом
    #32033509
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я не ошибаюсь, то по умолчанию join всегда inner, обратите внимание на outer joins, left и right.
...
Рейтинг: 0 / 0
Помогите с запросом
    #32033598
Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за совет, но с Left тоже не получается

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

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


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