相关疑难解决方法(0)

保持简单以及如何在查询中执行多个CTE

我有这个简单的T-SQL查询,它从表中发出一堆列,并且还连接来自其他相关表的信息.

我的数据模型很简单.我有一个预定的活动,与参与者.我需要知道有多少参与者参加每个活动.

我的解决方案是添加一个CTE,它对预定的事件进行分组并计算参与者的数量.

这将允许我按预定活动加入该信息.保持查询简单.

我喜欢让我的查询简单,但是,如果我将来需要在简单查询期间访问其他临时结果,我该怎么办?

我真的很喜欢它,如果我可以拥有多个CTE,但我不能,对吧?我有什么选择?

我已经在应用程序数据层排除了视图和操作.我更喜欢孤立我的SQL查询.

t-sql sql-server common-table-expression

137
推荐指数
2
解决办法
18万
查看次数

使用SQL Server CTE检索多个结果集

我想知道如何根据一个CTE检索多个结果集?像我下面的东西 - 但显然这不起作用.

根据那个CTE,有谁知道如何获得这两组(或更多)数据?(更多,因为从同一个CTE获得总记录数也会很好.)

;WITH CTE AS  
(
  SELECT 
      Column1, Column2, Column3 
  FROM 
      Product 
  WHERE 
      Name LIKE '%Hat%' AND Description Like '%MyBrand%'
)
SELECT DISTINCT CategoryId FROM CTE
SELECT DISTINCT BrandId FROM CTE
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server common-table-expression

3
推荐指数
1
解决办法
1254
查看次数

加入CTE时出现SQL Server语法错误

我正在使用SQL Server 2014,我在下面的SQL查询时遇到问题.似乎某处存在语法错误,但我找不到它.

我正在从两个单独的视图中加入两个选择查询,即ReservationListARACCOUNT.

USE MyDatabase

;WITH q1 AS (
    select * 
    from ReservationList
    WHERE [Market Segment Code] <> 'COMP' AND 
    NOT (Status] = 'CANCELED' OR [Status] = 'NOSHOW' OR [Status] = 'WAITLIST') AND 
    NOT [Departure Date] < '2014-07-01' AND 
    NOT [Market Segment Code] = 'COMP' AND 
    NOT [Arrival Date] = [Departure Date]
)a

q2 AS (
    SELECT 
        [PMSConfirmationNumber],
        [FOC ACCOUNT],
        [AR ACCOUNT NAME]
    FROM 
        ARACCOUNT
)b

Select 
    q1.* 
from 
    q1
    JOIN q2 ON q1.PmsConfirmatioNnumber = …
Run Code Online (Sandbox Code Playgroud)

sql sql-server select join syntax-error

2
推荐指数
1
解决办法
92
查看次数