Как вставить столбец, содержащий переменные отношения вместо записей - PullRequest
0 голосов
/ 03 ноября 2018

Я хочу, чтобы столбец был вставлен перед столбцом описания . И я хочу, чтобы это было так:

///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

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

Попробуйте это

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
0 голосов
/ 03 ноября 2018

Возможно, вы ищете какое-то использование оконной функции . Как правило, вы можете использовать определенные агрегатные функции в сочетании с предложением OVER. Это позволяет вам получать агрегаты на уровне строк без указания предложения GROUP BY.

Для пример вы также можете рассчитать совокупную сумму. В вашем случае, я полагаю, вы можете использовать PARTITION BY для вычисления Total_QTY для конкретного вида предмета. Я полагаю, что вам удастся справиться с этим, поскольку вы используете функции ранжирования (концепция одинакова).

Итак, вы можете попробовать что-то вроде этого:

SUM(QTYColumn) OVER () * UnitCost

, если данные уже отфильтрованы для определенных элементов или:

SUM(QTYColumn) OVER (PARTITION BY itemID) * UnitCost
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...