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

Откуда:
Сообщений: 10
подскажите, пожалуйста, как организовать запрос "Вывести: название товара, минимальную цену сделок, выполненных с разными поставщиками". Реализовать через Inner Join и Outer (left, right, full) Join.

Запрос с and'ами есть, но, видимо, не очень корректный:
select
Purchasing.Vendor.Name,
Production.Product.Name,
min(Sales.SalesOrderHeader.TotalDue)

from
Production.Product,
Sales.SalesOrderDetail,
Sales.SalesOrderHeader,
Purchasing.ProductVendor,
Purchasing.Vendor

where
Sales.SalesOrderDetail.SalesOrderID = Sales.SalesOrderHeader.SalesOrderID
and
Sales.SalesOrderDetail.ProductID = Production.Product.ProductID
and
Sales.SalesOrderDetail.ProductID = Purchasing.ProductVendor.ProductID

group by Purchasing.Vendor.Name, Production.Product.Name, Sales.SalesOrderHeader.TotalDue
17 окт 09, 11:16    [7799994]     Ответить | Цитировать Сообщить модератору
 Re: запрос к AdventureWorks  [new]
iljy
Member

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

и в чем собственно у вас проблема?
from 
Production.Product,
Sales.SalesOrderDetail,
Sales.SalesOrderHeader,
Purchasing.ProductVendor,
Purchasing.Vendor

where
Sales.SalesOrderDetail.SalesOrderID = Sales.SalesOrderHeader.SalesOrderID
and
Sales.SalesOrderDetail.ProductID = Production.Product.ProductID
and
Sales.SalesOrderDetail.ProductID = Purchasing.ProductVendor.ProductID
==
from 
Sales.SalesOrderDetail sod join Sales.SalesOrderHeader soh
          on sod.SalesOrderID = soh.SalesOrderID
join Purchasing.ProductVendor pv on sod.ProductID = pv.ProductID
join Production.Product p on sod.ProductID = p.ProductID
join Purchasing.Vendor v on ? какое условие?
видимо не очень корректный он потому, что к таблице Purchasing.Vendor применяется cross join - декартово произведение.
17 окт 09, 12:13    [7800059]     Ответить | Цитировать Сообщить модератору
 Re: запрос к AdventureWorks  [new]
lookid
Member

Откуда:
Сообщений: 10
как реализовать через join "Вывести потавщика, название товара, минимальную цену сделок, выполненных с разными поставщиками".
поставщик поставляет товар, а сделка совершается в соответствии с таблицей Sales.Store
17 окт 09, 12:31    [7800081]     Ответить | Цитировать Сообщить модератору
 Re: запрос к AdventureWorks  [new]
lookid
Member

Откуда:
Сообщений: 10
т.е.
*поставщик* | *продукт* | *минимальная сделка с покупателем*|
*поставщик* | *продукт* | *минимальная сделка с покупателем*|
...
поставщики не должны повторятся
17 окт 09, 12:34    [7800085]     Ответить | Цитировать Сообщить модератору
 Re: запрос к AdventureWorks  [new]
iljy
Member

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

в чем у вас проблема собственно? Что вы пробовали и что не получается? И как связаны таблицы?
17 окт 09, 12:36    [7800090]     Ответить | Цитировать Сообщить модератору
 Re: запрос к AdventureWorks  [new]
lookid
Member

Откуда:
Сообщений: 10
связи:
vendor: IDпоставщика - поставщик
store: IDпокупателя - покупатель
product: IDпродукта - продукт
productvendor: IDпоставщика - IDпродукта
salesorderheader: IDзаказа - IDпокупателя
salesorderdetails: IDзаказа - IDпродукта
17 окт 09, 12:44    [7800099]     Ответить | Цитировать Сообщить модератору
 Re: запрос к AdventureWorks  [new]
lookid
Member

Откуда:
Сообщений: 10
не знаю как реализовать запрос через join
17 окт 09, 12:44    [7800100]     Ответить | Цитировать Сообщить модератору
 Re: запрос к AdventureWorks  [new]
iljy
Member

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

вы синтаксиса не знаете? Так в БОЛ посмотрите. Я вам почти все написал, вам осталось одно условие подставить!
17 окт 09, 12:53    [7800112]     Ответить | Цитировать Сообщить модератору
 Re: запрос к AdventureWorks  [new]
lookid
Member

Откуда:
Сообщений: 10
а во всё, разобрался. спасибо
*тема закрыта*
17 окт 09, 12:59    [7800124]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить