繁体   English   中英

访问SQL查询:添加一个新字段?

[英]ACCESS SQL query: adding a new field?

我想向不受“ Where函数”影响的现有查询中添加一个字段

例如,

这是原始代码。

SELECT SHELL_Payables.PoolNum, 
A.[Code], B.[Program] AS Program, A.PayableAmt, C.ReceivableAmt  INTO [New Data]

FROM A INNER JOIN B ON A.ID=B.ID 
              INNER JOIN C  ON A.Num=B.Num

WHERE (((A.AccountingPeriod)<=[AccountingYearMonth]));

我想再次添加A.PayableAmt,但是这一次where子句(accountingperiod <= accountingyearMonth)不应应用于此字段...

有任何想法吗? 将不胜感激。

要使用unionselect into ,您需要编写如下查询:

SELECT *
INTO [New Data]
FROM (
    SELECT PoolNum
        ,A.[Code]
        ,B.[Program] AS Program
        ,A.PayableAmt
        ,C.ReceivableAmt
    FROM A
    INNER JOIN B ON A.ID = B.ID
    INNER JOIN C ON A.Num = B.Num
    WHERE A.AccountingPeriod <= AccountingYearMonth

    UNION 

    SELECT PoolNum
        ,A.[Code]
        ,B.[Program] AS Program
        ,A.PayableAmt
        ,C.ReceivableAmt
    FROM A
    INNER JOIN B ON A.ID = B.ID
    INNER JOIN C ON A.Num = B.Num
    )

UPDATE

如果您想在同一行中添加另一个PayableAmt列,也许您可​​以PayableAmt回表A,如下所示:

SELECT   t.PoolNum
        ,a.[Code]
        ,a.[Program] AS Program
        ,t.PayableAmt
        ,a.PayableAmt AS NewPayableAmt
        ,C.ReceivableAmt
INTO [New Data]
FROM A
LEFT JOIN 
 (
    SELECT 
         PoolNum
        ,A.[Code]
        ,B.[Program] AS Program
        ,A.PayableAmt
        ,C.ReceivableAmt
    FROM A
    INNER JOIN B ON A.ID = B.ID
    INNER JOIN C ON A.Num = B.Num
    WHERE A.AccountingPeriod <= AccountingYearMonth
   ) t
   ON t.Code = A.Code --assuming this is unique
INNER JOIN B ON A.ID = B.ID
INNER JOIN C ON A.Num = B.Num

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM