Проблема с отображением желаемого максимального результата при использовании представления и оператора WHERE - PullRequest
0 голосов
/ 23 апреля 2019

Попытка показать максимальное количество элементов в моем столбце NumberofUnits, где ProductDescription начинается с буквы P. Моя цель - показать только один результат, он должен показывать только один экземпляр "Pants", где NumberOfUnits является по величине. Вместо этого он создает более одного экземпляра и не показывает максимум любого. Я пробовал это двумя разными способами, и ни один из них не дал того, что я искал.

Я должен упомянуть, что моя цель - запустить эту хранимую процедуру для моего табличного представления. Как бы исправить эту проблему, чтобы получить искомый результат, возможно ли вообще использовать агрегат, такой как MAX, в хранимой процедуре, когда она работает с табличным представлением? Если так, что мне нужно сделать, чтобы изменить его, чтобы он работал? (Это для домашнего задания в моем классе)

Сначала я создал табличное представление и хранимую процедуру, чтобы попытаться решить эту проблему двумя различными способами. Один использует функцию MAX только в хранимой процедуре, второй - только в табличном представлении. Ни один из них не дал ожидаемых результатов.

- попытка TableView

create view [dbo].[inventoryinfo1_vw] as
select InventoryOrdering.NumberOfUnits, InventoryOrdering.DateOfOrder, Product.ProductDescription, Product.ListPrice, Supplier.Name, Supplier.PhoneNumber
from Supplier
join InventoryOrdering
on InventoryOrdering.SupplierID = Supplier.SupplierID
join Product
on Product.ProductNO = InventoryOrdering.ProductNO
group by DateofOrder, ProductDescription, ListPrice, Name, PhoneNumber

- попытка хранимой процедуры

create procedure MaxInfo
as 
begin
    select MAX(NumberOfUnits) AS 'Largest Quantity', ProductDescription
    from [dbo].[inventoryinfo1_vw]
    where ProductDescription LIKE 'P%'
    group by ProductDescription
    order by ProductDescription
end

Я хотел видеть только одну строку с наибольшим количеством единиц, которая началась с P, вместо этого он создает две строки, как я могу предотвратить это?

Приведенный выше код привел к следующему:

Largest Quantity        ProductDescription
     8                     Pants
    12                     Pants

1 Ответ

0 голосов
/ 23 апреля 2019

По вашему мнению, измените его следующим образом:

create view [dbo].[inventoryinfo1_vw] as
   select InventoryOrdering.NumberOfUnits, InventoryOrdering.DateOfOrder, TRIM(Product.ProductDescription) AS ProductDescription, Product.ListPrice, Supplier.Name, Supplier.PhoneNumber
-- etc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...