【发布时间】:2014-07-30 05:13:15
【问题描述】:
我正在编写一个SQL 查询来检查Gross Profit Percentage 数据库中的一组销售项目。
SELECT T0.[itmsgrpcod],
T0.sell,
T0.cost,
( T0.sell / T0.cost ) AS "GP"
FROM (SELECT T0.[itmsgrpcod],
Sum(T1.[price]) AS "Sell",
Sum(T1.[stockprice]) AS "Cost"
FROM inv1 T1
LEFT OUTER JOIN oitm T0
ON T1.[itemcode] = T0.[itemcode]
GROUP BY T0.[itmsgrpcod]) T0
当我将SELECT 声明为:
SELECT T0.[ItmsGrpCod], T0.Sell, T0.Cost
它返回 96 行 - 正确的数量,填充了 Sell 和 Cost 数据。
当我添加列时:
(T0.Sell / T0.Cost) as "GP"
它只返回查询的第一行,并正确计算了 GP。
【问题讨论】:
-
我需要 GROUP BY,因为我正在尝试计算每个项目组的总销售额和成本,每个项目组有数百行。
-
您能否尝试在SQL Fiddle 重现该问题,就像您使用小数据样本所遇到的一样?
-
您刚刚添加了
sap标签。您能否详细说明它与问题的关系? -
数据库是 SAP Business One 数据库。
-
您在哪里运行查询并获取结果?它是自定义应用程序还是像 SSMS 这样的工具?
标签: sql sql-server tsql sap