将查询合并为一个

2023-12-14

我有以下疑问:

Query 1

SELECT so.ClientID, 'All Channels' as CustomerGroup, so.StatementID, so.Brand, so.Product,
Sum(so.Amount) Amount, Sum(so.Value_CP) Value_CP
into #t1
FROM RG_SalesOut_Report so
WHERE so.Block=0 AND so.[All Sources]='SalesOUT'AND so.Value_CP>0 AND so.Amount>0 AND
so.Brand in('Brand 1', 'Brand 2')
GROUP BY so.ClientID, so.CustomerGroup, so.StatementID, so.Brand, so.Product 

Query 2

select t1.ClientID, t1.CustomerGroup, t1.StatementID, t1.Brand, t1.Product,
Sum(t1.Amount) AS Amount, Sum(t1.Value_CP) AS Value_CP
into #t2
from #t1 t1
group by t1.ClientID, t1.CustomerGroup, t1.StatementID, t1.Brand, t1.Product

Query 3

select ROW_NUMBER() over(order by t2.ClientID desc) as ID, *, CONCAT(t2.ClientID, t2.Product) AS Code
into #t3
from #t2 t2
group by t2.ClientID, t2.CustomerGroup, t2.StatementID, t2.Brand, t2.Product, t2.Amount, t2.Value_CP, CONCAT(t2.ClientID, t2.Product)
ORDER BY t2.ClientID DESC, t2.Product, t2.StatementID desc

Query 4

select tab1.ClientID, tab1.CustomerGroup, convert(varchar,(CONVERT(date,tab1.StatementID,104)),104) AS StatementID, tab1.Brand,
tab1.Product, tab1.Amount, tab1.Value_CP, IIF(tab1.code=tab2.code, DATEDIFF(MONTH,tab2.StatementID, tab1.StatementID), 0) AS M_SALES
FROM #t3 tab1
RIGHT JOIN #t3 tab2
ON tab1.ID=tab2.ID-1
where tab1.StatementID >= '01.01.2013'
order by tab1.ID asc

如何将它们合并到一个查询中? 我需要查询 4 ​​结果


如果您使用 SQLServer 您可以使用常用表表达式没有临时表插入。还有你不需要order by#T3 查询中的类:

WITH T1 AS 
(
SELECT so.ClientID, 'All Channels' as CustomerGroup, so.StatementID, so.Brand, so.Product,
Sum(so.Amount) Amount, Sum(so.Value_CP) Value_CP
FROM RG_SalesOut_Report so
WHERE so.Block=0 AND so.[All Sources]='SalesOUT'AND so.Value_CP>0 AND so.Amount>0 AND
so.Brand in('Brand 1', 'Brand 2')
GROUP BY so.ClientID, so.CustomerGroup, so.StatementID, so.Brand, so.Product 
),
T2 AS
(
select t1.ClientID, t1.CustomerGroup, t1.StatementID, t1.Brand, t1.Product,
Sum(t1.Amount) AS Amount, Sum(t1.Value_CP) AS Value_CP
from T1
group by t1.ClientID, t1.CustomerGroup, t1.StatementID, t1.Brand, t1.Product
),
T3 AS
(
select ROW_NUMBER() over(order by t2.ClientID desc) as ID, *, CONCAT(t2.ClientID, t2.Product) AS Code
from t2
group by t2.ClientID, t2.CustomerGroup, t2.StatementID, t2.Brand, t2.Product, t2.Amount, t2.Value_CP, CONCAT(t2.ClientID, t2.Product)
)

select tab1.ClientID, tab1.CustomerGroup, convert(varchar,(CONVERT(date,tab1.StatementID,104)),104) AS StatementID, tab1.Brand,
tab1.Product, tab1.Amount, tab1.Value_CP, IIF(tab1.code=tab2.code, DATEDIFF(MONTH,tab2.StatementID, tab1.StatementID), 0) AS M_SALES
FROM T3 tab1
RIGHT JOIN T3 tab2
ON tab1.ID=tab2.ID-1
where tab1.StatementID >= '01.01.2013'
order by tab1.ID asc
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将查询合并为一个 的相关文章

  • SQL:从单个查询列出多对多

    我有 3 个表 分别代表 Users Roles 和多对多 UsersInRoles 键为 UserId RoleId 相关列 用户名 角色名 在管理 html 应用程序中 我想显示所有用户及其所在角色的列表 我尝试从 SQL 构建一个将返
  • SQL CASE 语句

    我有以下查询 我想将它们放入 sql CASE 语句中 这样我只有一个查询 但我不知道该怎么做 有人可以帮助我吗 IF SELECT EtlLoadId FROM ssislogs audit processcontrol WHERE Su
  • 使用 START WITH 和 CONNECT BY PRIOR 将查询从 oracle 迁移到 postgresql

    我正在将一个进程从 oracle 迁移到 postgresql 并且在它们的转换方面遇到了另一个问题 我一直在研究如何迁移oracle查询 它有 START WITH 和 CONNECT BY PRIOR 我已经对此进行了记录 我认为最简单
  • 将记录与另一个表上的最新记录连接

    我正在尝试创建一个 SQL 视图 我如何从一个表中选择最新的记录 而其他记录保持原样 我需要从所有表中选择所有记录 这工作正常 但我需要仅按日期选择最新的提案 这是我遇到的问题 这是我到目前为止所拥有的 SELECT TOP 100 PER
  • 选择语句REF oracle

    我需要一些帮助来创建将使用引用的选择语句 我设法很好地插入了值 但是当我尝试使用 where 语句提取值时 输出要么是数据类型错误 要么会输出两个表以及它们都包含的数据 这只是一个例子 Create or replace table1 Ty
  • ssis将N个表从源服务器加载到目标服务器的最佳实践

    我需要将 N 个 大约 50 个 表从源数据库加载到目标数据库 每个表都与其他表不同 因此元数据不同 我想我可以使用父 pkg 来调用子 pkg 其中每个子 pkg 都有简单的结构 例如 DFT 来映射要导入的表 1 个子 pkg gt 1
  • mssql 的 UUID 疯狂

    我的数据库条目有一个 UUID 及其值 使用 Microsoft SQL Server Management Studio 提取 CDF86F27 AFF4 2E47 BABB 2F46B079E98B 将其加载到我的 Scala 应用程序
  • 即使在不活动状态下,Hangfire 也会继续运行 SQL 查询

    我正在开发一个 ASP net MVC 5 网站 并使用 Hangfire 来安排一些任务 在本例中每 3 分钟一次 我知道一个事实是 运行这样的任务 以及与之相关的数据库查询 只需要几秒钟 我面临的问题是 Hangfire 似乎让我的 S
  • 查找缺失值

    我有一个表 有 2 个重要的列 DocEntry WebId 样本数据就像 DocEntry WebId 1 S001 2 S002 3 S003 4 S005 现在我们可以注意到 在 WebId 列中 S004 丢失了 我们如何通过查询找
  • 排除任何字段中具有 NULL 值的行结果?

    我有一个像这样的简单选择 SELECT FROM table WHERE fk id 10020 它可以工作 但有一些字段为 NULL 没有模式所以做了 SELECT FROM table WHERE fk id 10020 AND NOT
  • 如何使用存储过程 SQL SERVER 2008 R2(mssql) 插入 PHP 数组值

    我有这个数组 REV Array 0 gt 240 1 gt 241 2 gt 242 3 gt 243 4 gt 249 我现在使用下面的代码进行插入 将每个数组的元素存储在带有 id userID Type 和 Date 的行中 if
  • 在两个以上的表上使用内联接删除查询

    我想使用两个以上表上的内联接从表中删除记录 假设我有表 A B C D 其中 A 的 pk 在所有其他提到的表中共享 然后如何编写删除查询以使用表 B 和 A 上的内联接从表 D 中删除记录 因为条件是从这两个表中获取的 我需要从 DB2
  • MySQL 多个 IN 条件对同一个表进行子查询

    我有多个带有子查询的 IN 条件 SELECT S name S email FROM something S WHERE 1 NOT IN SELECT id FROM tags WHERE somethingId S id AND 2
  • LINQ-to-SQL 是否支持组合查询?

    作为一名不懂 C 的程序员 我对 LINQ 查询的求值语义很好奇 如下所示 var people from p in Person where p age lt 18 select p var otherPeople from p in p
  • 使用存储过程访问数据可以提供哪些安全优势?

    我看到一些指南建议您通过存储过程对所有数据访问进行分层来保护数据库 我知道对于 SQL Server 您可以保护表甚至列免受 CRUD 操作的影响 例如 Logged in as sa USE AdventureWorks GRANT SE
  • SQL Server 中不需要的日期时间舍入

    我遇到了一些看起来很奇怪的事情 SQL Server 似乎正在舍入一些DateTime当我将它们保存到时 值不合适datetime列 我怀疑我错过了一些东西 但我找不到它 我正在使用 NET 4 0 针对 SQL Server 2008 运
  • WHERE 子句或 ON 子句中的 INNER JOIN 条件?

    我今天输错了一个查询 但它仍然有效并给出了预期的结果 我的意思是运行这个查询 SELECT e id FROM employees e JOIN users u ON u email e email WHERE u id 139840 但我
  • SQL COUNT(*) 返回错误答案

    以下脚本应返回部门名称以及这些部门中的员工人数 营销 行政和销售部门有 0 名员工 但返回值不是 0 而是 1 我怎样才能纠正它 select Department Departments DepartmentID count as Num
  • SQL Server:比较两个表中的列

    我最近完成了从某些应用程序的旧版本到当前版本的迁移 在迁移数据库时遇到了一些问题 我需要一个可以帮助我比较两个表中的列的查询 我的意思不是行中的数据 我需要比较列本身来弄清楚我错过了表结构的哪些变化 看一下红门 SQL 比较 http ww
  • 计算行数并仅获取表中的最后一行

    我有一张桌子叫employeexam其结构和数据是这样的 id course id employee id degree date 1 1 3 8 2013 01 14 2 2 4 15 2013 01 14 3 2 4 17 2013 0

随机推荐

  • 在cpp中将字符串转换为_T

    我想转换string or char to the T但做不到 如果我写 tcscpy cmdline T hello world 它工作得很好 但是如果我写 char msg hello world tcscpy cmdline T ms
  • Spring中的数据库连接管理

    使用 Spring 框架时我们是否必须显式管理数据库资源 比如关闭所有打开的连接等 我读到 Spring 将开发人员从此类样板代码中解放出来 这是为了回答我在 Spring Web 应用程序中遇到的错误 org springframewor
  • 模式扩展以运行命令

    知道我能跑echo or mv扩展这样的模式 echo 0 9 A Z 我很想知道是否有办法执行相同的操作但运行命令 docker compose stop rm up d 上面的例子不起作用 但有某种方法可以实现这一点 分别运行 stop
  • 如何实现错误处理?

    我的 AutoIt 脚本生成了一个我想要处理的错误 将任何错误发送到自定义函数的方式也可以 在VBA中我使用OnErrorGoTo 但我无法在 AutoIt 中找到类似的东西 我的代码 Func Start While 1 If Proce
  • Apps 脚本 - 在 Google 表格上复制“将图像放入所选单元格”

    我目前正在通过 Apps 脚本功能在 Google 表格中插入多个图像插入图片 使用它 该函数将图像插入到单元格上方 而不是单元格内部 我可以通过单击三个点按钮 然后选择 将图像放入所选单元格 将该图像插入到单元格中 如下所示link 这里
  • 没有 Google Play 的 Android Admob

    我在网上找不到任何东西 有没有办法使用 AdMob SDK 通过我的应用程序获利 而无需将应用程序放在 Google Play 商店中 你们中有人可能知道吗 提前致谢 您无需通过 Google Play 分发应用程序即可使用 AdMob S
  • 嵌套查询 MVC LINQ

    我是新来的MVC and LINQ 目前 我在该项目上遇到了困难 并决定发布 My MVC View我想要实现的目标 Cut 1 20 2 40 Color 3 30 4 50 Perm 5 10 这是我的数据表的一些示例 ID Offer
  • 未捕获的类型错误未定义不是函数

    我是 JQuery 新手 不知道如何处理诸如未捕获之类的错误TypeError undefined is not a function 我不知道如何按顺序排列下面的 jQuery 代码 有人可以安排一下吗 model Mvc4 WebGri
  • 有没有办法从 Zend Framework 的引导程序重定向浏览器?

    我需要根据引导文件中的某些条件进行重定向 这是在定义前端控制器和路由之后完成的 我怎么做 我知道我可以简单地使用 header Location 重点是我需要使用 Router 来构建 URL 一年多后 我在 ZF 编程 我为你的问题找到了
  • 如何导航到 WP7 中的不同枢轴项目

    我有一个全景页面 其中有 3 个按钮 我已将一个数据透视页添加到具有 3 个数据透视项的同一项目中 当我单击全景页面中的按钮 1 时 它应该转到数据透视页面中的第一个数据透视项目 当我单击全景页面中的按钮 2 时 它应该转到数据透视页面中的
  • Boost asio - 分离不同的数据块

    想象一下 我们创建简单的客户端 服务器应用程序来将文件从客户端发送到服务器 我们使用boost asio 服务器开始监听 客户端连接到服务器 客户端发送文件名和文件内容 但服务器只接收字节流 服务器如何检测文件名结尾和文件内容开头 我的第一
  • 使用 appium 运行量角器脚本时:使用定位器找不到元素

    我正在使用 Ipad Air 模拟器 appium 和量角器来自动执行 Angular JS 站点的测试 但测试无法成功通过 它告诉我使用定位器找不到元素 我确信 xpath 与 Appium 生成的相同 这是我的配置文件 exports
  • Java JNDI API 用户无法通过多林设置对 AD 进行身份验证

    在我的测试环境中 我设置了两个活动目录林 A 和 B 每个林都有一个域控制器 并且林有两种信任设置 我有用户 森林中的用户 S 和森林中的用户 B 我已经使用 adfind exe 来测试 userA 和 userB 是否可以通过点击for
  • 如何始终在 MSBuild 中执行目标

    我有一个 MSBuild 文件 它在编译应用程序之前操作 AssemblyInfo 文件 在构建结束时 它会恢复 AssemblyInfo 文件 它通过备份文件 操作文件 然后在构建时间后恢复文件来实现此目的 除非在构建过程中发生错误 否则
  • ASP.NET 数据缓存 - 在应用程序域重新启动后保留内容

    我正在使用 ASP NET 的数据缓存 API 例如 HttpRuntime Cache Insert my data my key 有没有办法配置缓存 以便在应用程序域回收时保留其内容 我将许多对象加载到缓存中 但是每次应用程序域重新启动
  • PowerShell - 如何迭代 PSCustomObject 嵌套对象?

    我觉得这很简单 但我只是不明白 我不确定我的解释是否很好 我有下面的 JSON 文件 我想在 New 对象下获取 每个应用程序 App1 App2 App3 在下面的脚本行中 我本质上是尝试用一些变量替换 TestApp2 我想我正在尝试在
  • 删除第二个冒号后的文本

    我需要删除第二个冒号之后的所有内容 我有几种日期格式 需要使用相同的算法进行清理 a lt 2016 12 31T18 31 34Z b lt 2016 12 31T18 31Z 我尝试匹配两个列组 但我似乎无法找出如何删除第二个匹配组 s
  • Python简单数字比较

    问题 计算机随机生成一个数字 用户输入一个数字 计算机会告诉你是否太高或太低 然后你将继续猜测 直到猜出数字为止 我的解决方案 import random computer random randint 1 500 def guessNum
  • Robotium:请安装兼容的 Android API 级别(15 或更高)

    尝试运行新的 Robotium 测试时出现此错误 有谁知道如何修理它 我拥有所需的所有 API 15 以及许多更高的 API 我缺少什么 这是我的 gradle 文件的一部分 android compileSdkVersion 25 bui
  • 将查询合并为一个

    我有以下疑问 Query 1 SELECT so ClientID All Channels as CustomerGroup so StatementID so Brand so Product Sum so Amount Amount