Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql INSERT语句的select列表包含的项目少于INSERT列表_Sql_Sql Server_Tsql - Fatal编程技术网

Sql INSERT语句的select列表包含的项目少于INSERT列表

Sql INSERT语句的select列表包含的项目少于INSERT列表,sql,sql-server,tsql,Sql,Sql Server,Tsql,我试图从视图和表中插入表变量,这是我试图使用的代码: DECLARE @ResultCodes TABLE(ID_Audit INT, AcctCode VARCHAR(3), BidYear VARCHAR(4), Num_Htls INT, AuditStatus VARCHAR

我试图从视图和表中插入表变量,这是我试图使用的代码:

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列表。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
大概有15件事

就像6件事。那不行


有关更多信息:

mysql?sql server?博士后?oracle?你在insert语句之后选择了六列,而insert语句有二十列。我看得全错了,认为这两个select语句可以一起工作,得到我的12列。找到了解决方案,我将与大家分享这一解决方案,以防其他人遇到类似的事情。我知道错误是什么,这意味着什么,我只是不知道我要去哪里wrong@PsychoCoder从你的问题来看,看起来你根本没有做过搜索。如果你知道,但无论如何也不能弄清楚,最好包括你找到的信息以及为什么你仍然不能弄清楚。
ID_Audit,AcctCode,BidYear,Num_Htls,AuditStatus,Account,X,E,H,H_NLRA,N,Extra
  ID_Audit,
    AcctCode,
    BidYear,
    COUNT(ID_RFP),
    Audit_Status,
    Account