我希望在说明栏之前插入栏。我希望它像这样:
///Totalcolumn = QNTColumn * UnitCostColumn///
我不希望它只包含一条记录。
这会为我说话:
CREATE PRCOEDURE GetAllGoods
AS
SELECT
ROW_NUMBER() OVER (ORDER BY namecolumn) AS RowNumberColumn,
CodeColumn,
NameColumn,
SUM(QTYColumn) AS Total_QTY,
UnitCostColumn,
DiscountRateColumn,
**->INSERT HERE (Total_QTY) * UnitCost AS Total_Cost
DescriptionColumn
FROM
GoodsTable1
答案 0 :(得分:0)
您可能正在寻找window function的某种用法。通常,您可以将特定的聚合函数与OVER
子句结合使用。这使您无需指定GROUP BY
子句就可以在行级别获得聚合。
对于example,您也可以计算累积总数。就您而言,我想您可以使用PARTITION BY
来计算特定种类物品的Total_QTY
。我相信当您使用排名靠前的功能(概念是相同的)时,您将设法解决这个问题。
因此,您可以尝试执行以下操作:
SUM(QTYColumn) OVER () * UnitCost
如果数据已经针对特定项目进行过滤,或者:
SUM(QTYColumn) OVER (PARTITION BY itemID) * UnitCost
答案 1 :(得分:0)
尝试一下
SELECT
ROW_NUMBER() OVER (ORDER BY namecolumn) AS RowNumberColumn,
CodeColumn,
NameColumn,
SUM(QTYColumn) AS Total_QTY,
UnitCostColumn,
DiscountRateColumn,
sum(QTYColumn) * UnitCostColumn AS Total_Cost,
DescriptionColumn
FROM
GoodsTable1
GROUP BY
CodeColumn, NameColumn, UnitCostColumn, DiscountRateColumn, DescriptionColumn