问题标签 [sql-subselect]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - 如何遍历存储过程中的表?
这个问题是从这个问题演变而来的。
我有两张表需要查询并从中收集一些计算得出的总和;我需要一个基于单位的结果集——每个单位一行,为它们计算的数据折叠到该行中。
这两个表包含以下相关成员:
客户类别日志:
ReportingMonthlySales :
对于每个 Unit(在两个表中都有很多行,每个 MemberNo 一个,但在结果集中包含一行),我需要填充四列:New、Assumed、Existing 和 Organic。这些值是基于属于相应“子类别”字段的单元的所有成员的总和。CustomerCategoryLog 表的 BeginDate/EndDate 值用于确定单位/成员在评估的月/年期间属于哪个子类别。
因此,结果集的简化形式如下所示:
用英语来表达这个问题,它是这样的:
给定用户作为参数提供的月份和年份(例如“1”代表月份(一月)和“2016”代表年份),找出每个 Unit 在该月内每个 Subcategory 的 MonthlySales 中有多少美元(其中BeginDate 小于或等于用户提供的月/年日期并且 EndDate 大于或等于提供的月/年日期)。
所以似乎我需要从年/月参数创建一个日期,以便与 CustomerCategoryLog 表中的 BeginDate 和 EndDate 值进行比较(另一个选项是更改 CustomerCategoryLog 表,使其具有 BeginDateMonth、BeginDateYear、EndDateMonth , 和 EndDateYear 整数;但我认为必须有一种直接的方法来从提供的年/月参数创建日期)。
我的问题是如何在 TSQL 中实际构建它。我不是 SQLhead,我最好的(伪sql)刺是:
我知道这不太正确,甚至可能不太正确,但希望对于 SQL 专家/jr 来说已经足够清楚了。读心者以了解我需要做什么/正在尝试做什么。
更新
以下是查询的两个表中的一些示例数据:
CustomerCategoryLog 表:
ReportingMonthlySales 表:
java - 关于jpa/hibernate subselect fetching的询问
我有一个关于代码片段(完整源代码)的询问,这是一本关于 Hibernate/JPA 的书的随附代码示例。
这是代码清单:
我不明白的具体部分是这个:
它旨在演示使用休眠的子选择功能进行预取以及将要执行的 SQL 查询。
以下注释: // select ID from ITEM
表示从 DB 中检索所有项目 ID。这是子选择预取的工作原理吗?为什么要从表中检索所有ID
s ITEM
?
这是Item
实体:
sql - 触发器 - 将 SELECT Result 直接写入 :new.field
我实际上正在接受 oracle SQL 基础知识的培训,并且我创建了一个看起来像这样的触发器(它有效!):
这个触发器工作正常,但我有两个简单的问题:
是否可以将第二个 SELECT 的结果直接写入: NEW.referee_nation_name 字段?所以我不需要第二个变量。
您是否看到其他可以优化的东西?
mysql - SQL子选择解析
我有 2 个表格,即下面的客户和产品是否有定义
顾客
customer_id
.customer_name
.
产品
product_id
.product_name
.
客户表填充如下
产品表填充如下
当我运行以下查询时
我的期望是它会在产品表中抱怨 no column customer_id 错误,而不是这个查询返回客户表的所有行。谁能解释这里发生了什么?为什么子选择使用父查询中的表并从中返回结果而不抱怨?
db2 - 在结果集列中包含用户定义的表函数中的 5 个返回列
我有一个 UDTF 将始终返回 1 行 6 列 UDTF 有一个参数
我希望查询结果集中包含 5 列。我正在查询的表有一列我想用作每一行的参数
我一直无法弄清楚正确的语法。
有什么建议么?
UDTF
例子
结果
这是我尝试过的选择示例
结果
sql - FROM子句中子选择的Oracle语法?
根据Using Subqueries Oracle SQL 在 select 语句的 from-clause 中接受子查询,例如
但是,查看SELECT 文档,我看不到在 from 子句中选择/子查询的可能性(例如,从规则table_reference
或join_clause
)。
我在这里遗漏了什么吗,这部分 SQL 语法是否记录在其他地方?或者这是文档的另一个不完整部分?
sql - 获取分组结果的最后一个值 - Oracle SQL
有一张账单清单,我想知道每个客户按 id 分组的销量。每张账单都有一个负责人(一位店员,要么是表中的顾客),所以我想拿起最后一张账单的人并将其包含在结果中。
结果应该是这样的:客户 - 账单总和 - 最后一张账单的负责人。
由于 Oracle 没有“限制”选项(我们还没有 12c),所以我必须使用子选择来完成。这意味着我无法比较客户的 ID,因为它超出了范围(请参阅下面的代码)。欢迎任何建议。
在这种情况下,b.responsible无法从 customer 表中获取customer.id 。
请随意更改标题,我不是很擅长,对不起!
subquery - 是否有比此查询更具可扩展性的子选择替代方案?
我有一个包含date
类型字段的大表datetime
。作为将两个列表作为输入的函数的一部分,datetime
即一个列表,afroms
我atos
想为这些afrom,ato
对中的每一对计算日期在它们之间的大表的所有行。
我想出了一种不太有效的方法来做到这一点,即它有一个严重的可扩展性缺陷:
然后我可以cross
这样使用:
这会产生正确的结果:
但是,当我有一个大列表afroms
并且atos
将cross
“不必要地”扩展潜在的大表t2
时,它的大小t1
不会很好地扩展。
有一个更好的方法吗?例如,我尝试过类似的事情:
我猜我需要做一个循环,但不知道怎么做。子问题..是否有可能有一个区间元组列表,即intervals(afrom;ato)
而不是分隔afroms
和atos
?
sql - 两个 SELECT 语句单独工作但不能一起工作
我有两个单独工作的选择语句,但不能一起工作。
这个:
工作并返回一行一列,值为 2
这个:
工作并返回正确的行。
然而,这:
不返回任何内容(它应该返回与上述语句相同的行),即使外部和内部选择语句独立工作。这里有什么问题?
谢谢!