Microsoft SQL Server-订单百分比
我正在培训Northwind样本数据库,并有任务要做: 创建返回以下内容的查询:Microsoft SQL Server-订单百分比,sql,sql-server,Sql,Sql Server,我正在培训Northwind样本数据库,并有任务要做: 创建返回以下内容的查询:CompanyName、OrderID、SaleAmount(该订单的价值)、该订单的百分比值、客户订单的总值 我做到了,一切正常,但现在我想补充一点: 我想添加一个字段,显示单个订单占所有订单总价值的百分比份额-总和(销售额) 我是这样做的: SELECT CompanyName, OrderID, SaleAmount, CAST(100 * SaleAmount / SUM(SaleAmount
CompanyName
、OrderID
、SaleAmount
(该订单的价值)、该订单的百分比值、客户订单的总值
我做到了,一切正常,但现在我想补充一点:
我想添加一个字段,显示单个订单占所有订单总价值的百分比份额-总和(销售额)
我是这样做的:
SELECT
CompanyName,
OrderID,
SaleAmount,
CAST(100 * SaleAmount / SUM(SaleAmount) OVER (PARTITION BY CompanyName) AS decimal(5, 2)) AS 'Percent',
SUM(SaleAmount) OVER (PARTITION BY CompanyName) AS Total,
(SELECT
SUM(SaleAmount) AS Całość_Zamówienia
FROM dbo.[Sales Totals by Amount])
AS Suma_całkowita,
CAST(100 * SaleAmount / SUM(SaleAmount) OVER (PARTITION BY CompanyName) AS decimal(11, 2)) AS 'TEST'
FROM dbo.[Sales Totals by Amount]
GROUP BY CompanyName,
OrderID,
SaleAmount
但是它显示了愚蠢的事情,你能帮我吗?:)试试这个:
SELECT CompanyName, OrderID, SaleAmount,
CAST(100 * SaleAmount / SUM(SaleAmount) OVER(PARTITION BY CompanyName) as decimal(5,2)) as 'Percent',
SUM(SaleAmount) OVER(PARTITION BY CompanyName) as Total,
(SELECT Sum(SaleAmount) as Całość_Zamówienia FROM dbo.[Sales Totals by Amount]) as Suma_całkowita
,CAST(100 * SUM(SaleAmount) OVER(PARTITION BY CompanyName)/ (select sum(SaleAmount) from dbo.[Sales Totals by Amount]) as decimal(11,2)) as 'TEST'
FROM dbo.[Sales Totals by Amount]
GROUP BY CompanyName, OrderID, SaleAmount
试试这个:
SELECT CompanyName, OrderID, SaleAmount,
CAST(100 * SaleAmount / SUM(SaleAmount) OVER(PARTITION BY CompanyName) as decimal(5,2)) as 'Percent',
SUM(SaleAmount) OVER(PARTITION BY CompanyName) as Total,
(SELECT Sum(SaleAmount) as Całość_Zamówienia FROM dbo.[Sales Totals by Amount]) as Suma_całkowita
,CAST(100 * SUM(SaleAmount) OVER(PARTITION BY CompanyName)/ (select sum(SaleAmount) from dbo.[Sales Totals by Amount]) as decimal(11,2)) as 'TEST'
FROM dbo.[Sales Totals by Amount]
GROUP BY CompanyName, OrderID, SaleAmount
当前的输出是什么?您期望得到什么?我希望获得单个订单的百分比份额,例如订单np.10524,销售金额3192,65,所有订单的总金额291026,66。SaleAmum/TotalAmount*100%
SUM(SaleAmum)OVER()
返回与您的Sumałkowita
仍然无法完成:(应类似于您现有的百分比计算:转换(100*SaleAmount/SUM(SaleAmount)OVER()为十进制(5,2))
当前的输出是什么?您期望得到什么?我希望获得单个订单的百分比份额,例如订单np.10524,销售金额3192,65,所有订单的总金额291026,66。SaleAmum/TotalAmount*100%SUM(SaleAmum)OVER()
返回与您的Sumałkowita
仍然无法完成:(应类似于您现有的百分比
计算:CAST(100*SaleAmount/SUM(SaleAmount)OVER()为十进制(5,2))