2014-08-29 77 views
-2

我試圖從一個視圖和一個表中插入一個表變量,這是我試圖使用的代碼:INSERT語句的選擇列表包含的內容少於插入列表

DECLARE @ResultCodes TABLE(ID_Audit INT, 
          AcctCode VARCHAR(3), 
          BidYear VARCHAR(4), 
          Num_Htls INT, 
          AuditStatus VARCHAR(50), 
          Account VARCHAR(3), 
          X INT, E INT, H INT, H_NLRA INT, N INT, Extra INT) 

INSERT INTO @ResultCodes(ID_Audit, AcctCode, BidYear, Num_Htls, AuditStatus, Account, 
         X, E, H, H_NLRA, N, Extra) 
    SELECT 
     ID_Audit, 
     AcctCode, 
     BidYear, 
     COUNT(ID_RFP), 
     Audit_Status, 
     Account 
    FROM 
     dbo.c_Audit_Rec_Status 
    WHERE 
     ID_Status_Audit = 105 
    GROUP BY ID_Audit,AcctCode,BidYear,Audit_Status,Account 
     UNION 
    SELECT 
     SUM(CASE WHEN ResultCode3 = 'X' THEN 1 ELSE 0 END), 
     SUM(CASE WHEN ResultCode3 = 'E' THEN 1 ELSE 0 END), 
     SUM(CASE WHEN ResultCode3 = 'H' AND Rate_Basis = 'LRA' THEN 1 ELSE 0 END), 
     SUM(CASE WHEN ResultCode3 = 'H' AND Rate_Basis = 'NLRA' THEN 1 ELSE 0 END), 
     SUM(CASE WHEN ResultCode3 = 'N' THEN 1 ELSE 0 END), 
     0 
    FROM 
     tbl_FA_Results WHERE AuditDate3 IS NOT NULL   

     SELECT * FROM @ResultCodes 

但我不斷收到此錯誤

的選擇列表的INSERT語句包含多於插入列表中的項目少。 SELECT值的數量必須與INSERT列的數量相匹配。

我已經看過這一百次,如果我看了一次,它似乎應該工作,任何人都可以看到我失蹤?

編輯

這是我結束了的作品就像一個魅力的代碼。有時,第二組的眼睛是所有需要:

DECLARE @ResultCodes TABLE(ID_Audit INT,AcctCode VARCHAR(3),BidYear VARCHAR(4),Num_Htls INT,AuditStatus VARCHAR(50),Account VARCHAR(3),X INT,E INT,H INT,H_NLRA INT,N INT,Extra INT) 
INSERT INTO @ResultCodes(ID_Audit,AcctCode,BidYear,Num_Htls,AuditStatus,Account,X,E,H,H_NLRA,N,Extra) 
    SELECT 
     ID_Audit, 
     AcctCode, 
     BidYear, 
     COUNT(c_Audit_Rec_Status.ID_RFP), 
     Audit_Status, 
     Account , 
     SUM(CASE WHEN ResultCode3 = 'X' THEN 1 ELSE 0 END), 
     SUM(CASE WHEN ResultCode3 = 'E' THEN 1 ELSE 0 END), 
     SUM(CASE WHEN ResultCode3 = 'H' AND Rate_Basis = 'LRA' THEN 1 ELSE 0 END), 
     SUM(CASE WHEN ResultCode3 = 'H' AND Rate_Basis = 'NLRA' THEN 1 ELSE 0 END), 
     SUM(CASE WHEN ResultCode3 = 'N' THEN 1 ELSE 0 END), 
     0 
    FROM 
     dbo.c_Audit_Rec_Status, 
     tbl_FA_Results 
    WHERE 
     c_Audit_Rec_Status.ID_Status_Audit = 105 AND AuditDate3 IS NOT NULL 
    GROUP BY ID_Audit,AcctCode,BidYear,Audit_Status,Account 
+0

mysql? SQL服務器? Postgres的?甲骨文? – djechlin 2014-08-29 22:16:33

+0

您在插入語句後選擇了六列,並且您的插入有二十列 – programnub112 2014-08-29 22:18:20

+0

https://www.google.com/search?q=The+select+list+for+the+INSERT+statement+contains+fewer &items + than + the + insert + list。&oq = + select + list + for + INSERT + statement + contains + less + items + than + insert + list – djechlin 2014-08-29 22:18:35

回答

2
ID_Audit,AcctCode,BidYear,Num_Htls,AuditStatus,Account,X,E,H,H_NLRA,N,Extra 

就像15米的東西。

ID_Audit, 
    AcctCode, 
    BidYear, 
    COUNT(ID_RFP), 
    Audit_Status, 
    Account 

就好像是6件事情。這是行不通的。

For more info:https://www.google.com/search?q=The+select+list+for+the+INSERT+statement+contains+fewer+items+than+the+insert+list.&oq=The+select+list+for+the+INSERT+statement+contains+fewer+items+than+the+insert+list.&aqs=chrome..69i57j0j69i64l3.160j0j1&sourceid=chrome&es_sm=91&ie=UTF-8

+0

謝謝,我一直在看這一切,認爲2選擇語句可以一起工作,讓我的12列。發現我將分享的解決方案,只是在別人碰到類似的情況時纔會分享 – PsychoCoder 2014-08-29 22:26:43

+0

我知道錯誤是什麼,它意味着什麼,我只是不能看到我錯誤的地方 – PsychoCoder 2014-08-29 22:37:54

+0

@PsychoCoder從你的問題真的看起來你根本沒有做過搜索。如果你這樣做但無法解決問題,那麼包含你找到的信息以及爲什麼你仍然無法弄清楚它會更好。 – djechlin 2014-08-29 22:49:32

相關問題