2015-03-26 2 views
-2

У меня проблема с написанием дополнительного запроса в статье FROM.Подзапрос FROM предложение SQL Server

Написать SELECT заявления, которое возвращает три столбца:

  • VendorName (из таблицы Vendors)
  • LatestInv (резюме функции, которая возвращает последнюю запись из InvoiceDate)
  • AverageInv (сводная функции, которая возвращает в среднем от InvoiceTotal)

Подсказка: вам нужно будет соединить две таблицы, прежде чем присоединиться к производной таблице (подзапрос)

Sub часть запроса: SELECT заявления, которое возвращает верхние десять VendorID и AverageInv (то же самое имя и функцию, как описано во внешнем запросе). Группируйте результаты по соответствующему столбцу и сортируйте результаты по AverageInv от самых больших до самых маленьких. Коррементируйте подзапрос как BestVendors и присоедините его к правильной таблице (где оба разделяют ключевое поле).

Группа внешний запрос в соответствующем столбце и отсортировать результаты по LatestInv последних к старым «

Код:.

SELECT 
    VendorName, 
    MAX(InvoiceDate) AS LatestInv, 
    AVG(InvoiceTotal) AS AverageInv 
FROM 
    Vendors 
JOIN 
    Invoices ON Vendors.VendorID = Invoices.VendorID 
(SELECT TOP 10 
    VendorID, 
    AVG(InvoiceTotal) AS AverageInv 
FROM Invoices 
GROUP BY VendorID 
ORDER BY AverageInv DESC) AS BestVendor ON Vendors.VendorID = BestVendor.VendorID 
GROUP BY 
    VendorName 
ORDER BY 
    LatestInv DESC; 

Это то, что я так далеко, но это не правильно, любая помощь будет оценена

ответ

0

Добавить РЕГИСТРИРУЙТЕСЬ перед подзапроса:

SELECT 
    VendorName, 
    MAX(InvoiceDate) AS LatestInv, 
    AVG(InvoiceTotal) AS AverageInv 
FROM 
    Vendors 
JOIN 
    Invoices ON Vendors.VendorID = Invoices.VendorID 
JOIN 
(SELECT TOP 10 
    VendorID, 
    AVG(InvoiceTotal) AS AverageInv 
FROM Invoices 
GROUP BY VendorID 
ORDER BY AverageInv DESC) AS BestVendor 
    ON Vendors.VendorID = BestVendor.VendorID 
GROUP BY 
    VendorName 
ORDER BY 
    LatestInv DESC; 
Смежные вопросы