sql - 在sql server cte中获取 "No column was specified for column 2 of ' d'"?

标签 sql sql-server group-by common-table-expression calculated-columns

我有这个查询,但它没有按预期工作,

with c as (select 
               month(bookingdate) as duration, 
               count(*) as totalbookings 
           from 
               entbookings
           group by month(bookingdate)
          ),
     d as (SELECT 
               duration, 
               sum(totalitems) 
           FROM 
               [DrySoftBranch].[dbo].[mnthItemWiseTotalQty] ('1') AS BkdQty
           group by duration
          )

select 
    c.duration, 
    c.totalbookings, 
    d.bkdqty 
from
    c 
    inner join d 
    on c.duration = d.duration

当我运行这个时,我得到

Msg 8155, Level 16, State 2, Line 1
No column was specified for column 2 of 'd'.

谁能告诉我我做错了什么吗?

另外,当我运行这个时,

with c as (select 
               month(bookingdate) as duration, 
               count(*) as totalbookings 
           from 
               entbookings
           group by month(bookingdate)
          ),
     d as (select 
               month(clothdeliverydate), 
               SUM(CONVERT(INT, deliveredqty)) 
           FROM 
               barcodetable
           where 
               month(clothdeliverydate) is not null
               group by month(clothdeliverydate)
          )

select 
    c.duration, 
    c.totalbookings, 
    d.bkdqty 
from
    c 
    inner join d 
    on c.duration = d.duration

我明白

Msg 8155, Level 16, State 2, Line 1
No column was specified for column 1 of 'd'.
Msg 8155, Level 16, State 2, Line 1
No column was specified for column 2 of 'd'.

最佳答案

您只需为 CTE 中的聚合列提供别名

d as (SELECT 
   duration, 
   sum(totalitems) as sumtotalitems
FROM 
   [DrySoftBranch].[dbo].[mnthItemWiseTotalQty] ('1') AS BkdQty
group by duration
)

关于sql - 在sql server cte中获取 "No column was specified for column 2 of ' d'"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12119073/

相关文章:

MySQL连接2个表并联合一列

SQL Server 2008 行到 1 个 CSV 字段

sql - 查找 SQL 2000 数据库中所有可为 Null 的列

SQL Server : How to test if a string has only digit characters

mysql - 是否可以使用 MYSQL GROUP BY 选择堆栈值

mysql - 如何用动态表名编写一个mysql函数?

sql-server - WinRT System.Data - 连接到 SQL

sql - 如何将1列数据拆分为3列?

MySQL,使用 MIN() 和 GROUP BY 基于子查询进行选择

SQL group by "date"问题