![](/img/trans.png)
[英]Insert Row into a select statement from second table if Time comes first using ROW_NUMBER PARTITION
[英]Write row number to table using INSERT statement with SELECT & UNION
我正在嘗試使用包含具有多個聯合的 SELECT 查詢的 INSERT 語句將基於列的連續行號寫入臨時表##TAX_TEMP。 但是,我得到每個 UNION 的重復序列,如下所示:
支付集團 | BATCH_ID | FILE_NBR | PAY_NBR | ENTRY_NBR | PDE_TRANS_TYPE |
---|---|---|---|---|---|
GA5 | MST_GA5PDE_07192022 | 000597 | 1 | 1 | 磷 |
GA5 | MST_GA5PDE_07192022 | 000597 | 2 | 1 | 磷 |
GA5 | MST_GA5PDE_07192022 | 000597 | 1 | 1 | 磷 |
GA5 | MST_GA5PDE_07192022 | 000597 | 2 | 1 | 磷 |
國標 | MST_GBZPDE_07192022 | 002418 | 1 | 1 | 磷 |
國標 | MST_GBZPDE_07192022 | 002418 | 2 | 1 | 磷 |
國標 | MST_GBZPDE_07192022 | 002418 | 1 | 1 | 磷 |
國標 | MST_GBZPDE_07192022 | 002418 | 2 | 1 | 磷 |
我在哪里尋找它根據FILE_NBR
列順序寫入,如下所示:
支付集團 | BATCH_ID | FILE_NBR | PAY_NBR | ENTRY_NBR | PDE_TRANS_TYPE |
---|---|---|---|---|---|
GA5 | MST_GA5PDE_07192022 | 000597 | 1 | 1 | 磷 |
GA5 | MST_GA5PDE_07192022 | 000597 | 2 | 1 | 磷 |
GA5 | MST_GA5PDE_07192022 | 000597 | 3 | 1 | 磷 |
GA5 | MST_GA5PDE_07192022 | 000597 | 4 | 1 | 磷 |
國標 | MST_GBZPDE_07192022 | 002418 | 1 | 1 | 磷 |
國標 | MST_GBZPDE_07192022 | 002418 | 2 | 1 | 磷 |
國標 | MST_GBZPDE_07192022 | 002418 | 3 | 1 | 磷 |
國標 | MST_GBZPDE_07192022 | 002418 | 4 | 1 | 磷 |
對上述結果的查詢是:
SELECT PAYGROUP,
BATCH_ID,
FILE_NUM,
ROW_NUMBER() OVER (ORDER BY FILE_NBR),
ENTRY_NBR,
PDE_TRANS_TYPE,
我嘗試了以下操作:
INSERT INTO ##TAX_TEMP
SELECT ROW_NUMBER() OVER (ORDER BY FILE_NBR) as 'PAY_NBR', * FROM (
SELECT PAYGROUP, BATCH_ID, FILE_NBR, ENTRY_NBR, PDE_TRANSTYPE
FROM TAX_TABLE
)
但是我收到了一個語法錯誤,它需要一個“as”或 QUOTED_ID
以供將來參考,發布您遇到的完整錯誤消息 - 不是縮寫的。 接下來,您嘗試使用派生表(括號中的 SELECT 語句)沒有任何用處。 您可以為它添加一個別名來解決錯誤,但為什么要為增加的復雜性而煩惱。 所以試試:
INSERT INTO ##TAX_TEMP (...)
SELECT ROW_NUMBER() OVER (ORDER BY FILE_NBR) as PAY_NBR,
PAYGROUP, BATCH_ID, FILE_NBR, ENTRY_NBR, PDE_TRANSTYPE
FROM dbo.TAX_TABLE;
我做了一些小的改變來實現更好的習慣。 模式限定表。 不要使用單引號來定義別名。 始終為 INSERT 和 SELECT 語句提供完整的列列表。 終止每個語句。 更好的習慣會產生更好的代碼。
為了解決您的編號問題,您似乎需要將分區添加到您的 ROW_NUMBER 使用中。 具體如何做到這一點尚不清楚。 您提到 UNION 但您的查詢沒有。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.