在我的SQL视图中创建一个新列 - 列必须是两个其他列组合在一起

Gra*_*ing 0 sql t-sql sql-server concatenation

我正在尝试创建一个新视图,但我也希望此视图有一个新列.新列必须是StkCode和Description_1的组合.

例如:如果我的StkCode是DX11122而Description_1是香草粉; 我想要一个字段如下:"香草粉 - DX11122"

CREATE VIEW KFF_Rep_Comm
AS
SELECT vw_KLX_RepCommTrx.AccName AS AccountName
,vw_KLX_RepCommTrx.Account AS AccountNum
,vw_KLX_RepCommTrx.RepID
,vw_KLX_RepCommTrx.RepName
,vw_KLX_RepCommTrx.CommPerc AS CommPercent
,vw_KLX_RepCommTrx.Credit
,vw_KLX_RepCommTrx.Debit
,vw_KLX_RepCommTrx.MUPercent AS MarkUpPercent
,vw_KLX_RepCommTrx.ProfitPercent AS GrossProfitPercent
,vw_KLX_RepCommTrx.SgdTrxAmt AS InvValue
,vw_KLX_RepCommTrx.SgdCost AS Cost
,vw_KLX_RepCommTrx.SgdProfit AS GrossProfit
,vw_KLX_RepCommTrx.SgdQty AS QtySold_Kg
,vw_KLX_RepCommTrx.TxDate
,vw_KLX_RepCommTrx.TrCodeID
,vw_KLX_RepCommTrx.StkCode
,vw_KLX_RepCommTrx.RepCode
,vw_KLX_RepCommTrx.Reference
,Client.DCLink
,StkItem.StockLink
FROM Client
INNER JOIN vw_KLX_RepCommTrx
ON vw_KLX_RepCommTrx.AccName = Client.Name
INNER JOIN StkItem
ON StkItem.Code = vw_KLX_RepCommTrx.StkCode
ADD ItemAndCode VARCHAR
Update vw_KLX_RepCommTrx 
SET ItemAndCode Concat(StkCode, ' - ',Description_1) ---HERE is where I am going wrong, I think?
Run Code Online (Sandbox Code Playgroud)

dot*_*tom 6

您只需要在select中添加另一列:

CREATE VIEW KFF_Rep_Comm
AS
SELECT vw_KLX_RepCommTrx.AccName AS AccountName
    ,vw_KLX_RepCommTrx.Account AS AccountNum
    ,vw_KLX_RepCommTrx.RepID
    ,vw_KLX_RepCommTrx.RepName
    ,vw_KLX_RepCommTrx.CommPerc AS CommPercent
    ,vw_KLX_RepCommTrx.Credit
    ,vw_KLX_RepCommTrx.Debit
    ,vw_KLX_RepCommTrx.MUPercent AS MarkUpPercent
    ,vw_KLX_RepCommTrx.ProfitPercent AS GrossProfitPercent
    ,vw_KLX_RepCommTrx.SgdTrxAmt AS InvValue
    ,vw_KLX_RepCommTrx.SgdCost AS Cost
    ,vw_KLX_RepCommTrx.SgdProfit AS GrossProfit
    ,vw_KLX_RepCommTrx.SgdQty AS QtySold_Kg
    ,vw_KLX_RepCommTrx.TxDate
    ,vw_KLX_RepCommTrx.TrCodeID
    ,vw_KLX_RepCommTrx.StkCode
    ,vw_KLX_RepCommTrx.RepCode
    ,vw_KLX_RepCommTrx.Reference
    ,Client.DCLink
    ,StkItem.StockLink
    ,Concat(vw_KLX_RepCommTrx.StkCode, ' - ',vw_KLX_RepCommTrx.Description_1) as ItemAndCode 
FROM Client
    INNER JOIN vw_KLX_RepCommTrx
        ON vw_KLX_RepCommTrx.AccName = Client.Name
    INNER JOIN StkItem
        ON StkItem.Code = vw_KLX_RepCommTrx.StkCode
Run Code Online (Sandbox Code Playgroud)

从您的代码中不清楚列Description_1来自何处,但我认为它是相同的视图vw_KLX_RepCommTrx.如果不是 - 您可以使用实际的表/视图名称更新它(如果列名称是唯一的,则删除表/视图名称)