历险记SQL服务器查询
Adventure Works SQL Server Enquiry
我正在使用 AdventureWorks 2014 数据库编写 SQL 查询。
我想显示哪些订单包含两种以上的产品?显示订单号、订单价值和订单包含的产品数量。
我试图自己写语句(见下文),但我希望能够解决关系:
select SalesOrderID , ProductID , LineTotal
from Sales.SalesOrderDetail
order by SalesOrderID
此代码会给出您预期的答案
SELECT SalesOrderID
,ProductID
,LineTotal
,'Sales Order ' +CAST(SalesOrderID AS VARCHAR(100))+' Contains Productid of'+CAST(ProductID AS VARCHAR(100))
AS [ProductsCountPerOrder]
,Productscount
FROM
(
SELECT salesorderid ,
productid ,
linetotal ,
Count(productid)OVER(partition BY salesorderid ORDER BY salesorderid) AS productscount
FROM sales.salesorderdetail
)dt
WHERE dt.productscount>2
ORDER BY salesorderid
@Juan Carlos Oropeza
我做到了,你看看有没有问题
select s.SalesOrderID,
a.SalesOrderCount,
a.ProductCount,
sum(LineTotal) as OrderValue
from Sales.SalesOrderDetail s ,
(select SalesOrderID ,
count(SalesOrderID) as SalesOrderCount ,
count(productid) as ProductCount
from Sales.SalesOrderDetail
group by SalesOrderID
) a
where s.SalesOrderID = a.SalesOrderID
group by a.salesordercount, s.SalesOrderID, a.ProductCount
having a.ProductCount >2
order by s.SalesOrderID
SELECT SalesOrderID,
COUNT(ProductID) as total_products,
SUM(LineTotal) as total_invoice
FROM SalesOrderDetail s
GROUP BY SalesOrderID
HAVING COUNT(ProductID) > 2
ORDER BY s.SalesOrderID
Select
SalesOrderID,
sum(LineTotal) as [order value],
count(SalesOrderID) as [number of Product]
from Sales.SalesOrderDetail
group by SalesOrderID having count(SalesOrderID)>=2
order by SalesOrderID desc
我正在使用 AdventureWorks 2014 数据库编写 SQL 查询。
我想显示哪些订单包含两种以上的产品?显示订单号、订单价值和订单包含的产品数量。
我试图自己写语句(见下文),但我希望能够解决关系:
select SalesOrderID , ProductID , LineTotal
from Sales.SalesOrderDetail
order by SalesOrderID
此代码会给出您预期的答案
SELECT SalesOrderID
,ProductID
,LineTotal
,'Sales Order ' +CAST(SalesOrderID AS VARCHAR(100))+' Contains Productid of'+CAST(ProductID AS VARCHAR(100))
AS [ProductsCountPerOrder]
,Productscount
FROM
(
SELECT salesorderid ,
productid ,
linetotal ,
Count(productid)OVER(partition BY salesorderid ORDER BY salesorderid) AS productscount
FROM sales.salesorderdetail
)dt
WHERE dt.productscount>2
ORDER BY salesorderid
@Juan Carlos Oropeza
我做到了,你看看有没有问题
select s.SalesOrderID,
a.SalesOrderCount,
a.ProductCount,
sum(LineTotal) as OrderValue
from Sales.SalesOrderDetail s ,
(select SalesOrderID ,
count(SalesOrderID) as SalesOrderCount ,
count(productid) as ProductCount
from Sales.SalesOrderDetail
group by SalesOrderID
) a
where s.SalesOrderID = a.SalesOrderID
group by a.salesordercount, s.SalesOrderID, a.ProductCount
having a.ProductCount >2
order by s.SalesOrderID
SELECT SalesOrderID,
COUNT(ProductID) as total_products,
SUM(LineTotal) as total_invoice
FROM SalesOrderDetail s
GROUP BY SalesOrderID
HAVING COUNT(ProductID) > 2
ORDER BY s.SalesOrderID
Select
SalesOrderID,
sum(LineTotal) as [order value],
count(SalesOrderID) as [number of Product]
from Sales.SalesOrderDetail
group by SalesOrderID having count(SalesOrderID)>=2
order by SalesOrderID desc