【问题标题】:the insert statement in child table子表中的插入语句
【发布时间】:2011-12-29 13:37:31
【问题描述】:

我试图在子表中插入,从父表中获取 [ACCNO] id 及其计数值,然后在子表的 FK 中插入 [ACCNO] 并对每个 [ACCNO] 进行计数,但仍然存在一些错误那里

INSERT INTO [test1].[dbo].[star_schema]
           (
           [ACCNO],
           [book_frequency])
     VALUES
           (SELECT  [books_dimension] .ACCNO , count(books_dimension .[ACCNO]) as book_frequency
            FROM         [books_dimension]  
                         group by [ACCNO] having (COUNT(*)>1) order by book_frequency  desc)
GO

它在 SELECT 附近和最后一个括号中给出错误。 我还想提一下,在表 [star_schema] 中,id 是 star_int,即身份 –

【问题讨论】:

    标签: sql sql-server-2008 sql-server-2005 tsql


    【解决方案1】:

    从 select 插入时不需要 VALUESORDER BY 关键字,这样做:

    INSERT INTO [test1].[dbo].[star_schema]([ACCNO], [book_frequency])
    SELECT  
      [books_dimension].ACCNO, 
      count(books_dimension.[ACCNO]) as book_frequency
    FROM [books_dimension]  
    group by [ACCNO] 
    having COUNT(*)>1
    

    【讨论】:

    • 感谢回复,我检查了但它在 desc 附近给出错误,我删除了 desc 但随后插入了 0 行,我还通过删除 group by 进行检查,还检查了放置和删除括号。
    • 我还想提一下,在表 [star_schema] 中,id 是 star_int 是身份
    • (0 行受影响),在新答案之后
    • 我的错误,因为 book_dimension 是唯一的行,所以它的计数不能超过 1,再次感谢您的发帖
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多