【发布时间】:2017-03-10 11:06:19
【问题描述】:
我有一个从多个表中提取数据的视图。在视图的一个列中,我需要插入一个帐户代码,该帐户代码可以在其中一个表的贷方或借方列下找到。如果借方栏中有帐户代码,则贷方栏中不会有帐户代码,反之亦然。基本上,如果在任一列中找到帐户代码,我都需要插入它。
由于 UNION,我无法更改视图列。
也许我正在使用错误的关键字搜索此信息,但我似乎找不到我需要的内容。
谢谢。
使用查询更新
SELECT
DET_YEAR as [Year],
DET_PERIODNUMBR as [Period],
DET_TYPE AS [Type],
'' AS [Status],
DET_Date AS [Tran Date],
'' AS [Supplier],
'' AS [Supplier Name],
DET_DESCRIPTION as [Description],
DET_DIMENSION3 AS [Department],
'' as [Entry Type],
'' as [Detail],
DET_GROSS as [Value],
DET_COSTHEADER as [Project Code],
CH_NAME as [Project Name],
DET_COSTCENTRE AS [Project Cost Centre],
'' AS [Analysis Code],
'' AS [Analysis Name],
'' AS [Nominal Code],
'' AS [Account Name],
DET_NOMINALDR as [DebitNominal],
DET_NOMINALCR AS [CreditNominal],
NNAME as [Dr/CrNominalName],
'' AS POH_ORDER_NUMBR,
DET_BATCH_REF
FROM SL_PL_NL_DETAIL WITH (NOLOCK)
LEFT JOIN CST_COSTHEADER WITH (NOLOCK) ON DET_COSTHEADER = CH_CODE
LEFT JOIN CST_COSTCENTRE WITH (NOLOCK) ON DET_COSTCENTRE = CC_CODE AND DET_COSTHEADER = CC_COPYHEADER
INNER JOIN NL_ACCOUNTS WITH (NOLOCK) ON (DET_NOMINALDR = NCODE OR DET_NOMINALCR = NCODE)
WHERE DET_TYPE IN ('JNL', 'VJL') AND DET_BATCH_FLAG = 0 AND DET_YEAR IN ('C', 'N'))
【问题讨论】:
-
您使用的是哪个 dbms?
-
您能否向我们展示表结构 - 或者如果它们很大,列的相关子集 - 以及您尝试了什么?
-
我正在使用 MSSQL
-
向我们展示一些基表示例数据、视图定义以及当前和想要的结果。
-
我需要将 DET_NOMINALDR 或 DET_NOMINALCR 放入 Nominal Code,当前结果分布在 2 列中。
标签: sql sql-server join view null