我是一个与事件管理相关的网站..在管理方面,我需要以下内容:
VendorName
,VendorPhoto
,VendorPhone
,VendorEmail
和ServiceType(ServiceID)
根据其销售额(Quantity
* Price
)排名显示在EventItem
表中,即:
供应商A(ServiceID:1,Service.Name:Florist)在表VendorItem
中有几个VendorItem(即产品表),类似地,其他供应商将在表{{1 }。当用户注册事件时,他将选择VendorItem
和供应商的产品(即Quantity
)。
然后查询应检查所有特定类型的供应商(例如:花店等),销售额最高(前3名)/
这是我到目前为止尝试过的查询,但是我无法获得所需的结果而且我对如何计算值VendorItem
感到困惑?
Quantity*Product
答案 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名供应商!