根据销售量最大的供应商排名记录(数量*价格)

时间:2015-03-28 20:42:57

标签: c# sql-server

enter image description here

我是一个与事件管理相关的网站..在管理方面,我需要以下内容: VendorNameVendorPhotoVendorPhoneVendorEmailServiceType(ServiceID)根据其销售额(Quantity * Price)排名显示在EventItem表中,即:

供应商A(ServiceID:1,Service.Name:Florist)在表VendorItem中有几个VendorItem(即产品表),类似地,其他供应商将在表{{1 }。当用户注册事件时,他将选择VendorItem和供应商的产品(即Quantity)。

然后查询应检查所有特定类型的供应商(例如:花店等),销售额最高(前3名)/

这是我到目前为止尝试过的查询,但是我无法获得所需的结果而且我对如何计算值VendorItem感到困惑?

Quantity*Product

2 个答案:

答案 0 :(得分:2)

Order By(Quantity*Product) desc

一起使用
SELECT TOP (3) tblVendor.VendorID, 
tblVendor.Name, 
tblVendor.Email, 
tblVendor.Phone,
tblVendor.Address, 
tblVendor.UserName, 
tblVendor.Password,
tblVendor.ServiceID, 
tblVendor.IsActive, 
tblVendor.Photo, 
tblVendor.Name AS 'VendorName', 
tblVendor.Photo AS Expr1, 
tblVendor.Email AS Expr2,
tblVendor.Phone AS Expr3   
FROM    
tblVendor 
INNER JOIN
tblVendorItem 
ON 
tblVendor.VendorID = tblVendorItem.VendorID
WHERE  (tblVendorItem.VendorID = 8) order by 
(Isnull(tblVendorItem.Quantity,0)*Isnull(tblVendorItem.Product,0)) desc

答案 1 :(得分:1)

SELECT TOP 3 tblEventItem.Quantity*tblEventItem.Price AS 'Sales',
             tblEventItem.VendorItemID,
             tblVendor.Name,
             tblVendor.Email,
             tblVendor.Phone,
             tblVendor.Photo

FROM tblEventService

INNER JOIN tblEventItem ON
            tblEventService.EventServiceID = tblEventItem.EventServiceID

INNER JOIN tblVendor ON
            tblEventService.VendorID = tblVendor.VendorID

WHERE tblEventService.ServiceID = @S_ID

ORDER BY 'SALES' DESC

此查询将为您带来魔力。

在这里,我们通过将两列相乘来创建一列:tblEventItem.Quantity*tblEventItem.Price并将其带入另一列SALES

根据INNER JOINS查询中的要求,其他选项为基本SELECT

ORDER BY 'SALES' DESC将为您提供最大销量的前3名供应商!