簡體   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