问题标签 [outer-apply]

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.

0 投票
4 回答
336 浏览

sql - 基于多个孩子配对的父母人数

在下面的示例中,我试图根据我拥有的每个酒吧位置的原料供应情况来计算我可以制作的饮料数量。

为了进一步澄清,如下例所示:基于下表中突出显示的数字;我知道我只能在 2018 年 6 月 30 日制作 1 杯玛格丽塔酒(如果我将用品运送到该地点,则在华盛顿或佛罗里达州)。

数据表样本

按位置组按饮料分类的库存示例图

请使用以下代码输入以上相关数据:

预期结果如下:

![期望的结果

请注意,如预期结果所示,儿童是可以互换的。例如,在 2018 年 7 月 7 日,Triple Sec 抵达了饮品 cosmopolitan;然而,因为孩子也是朗姆酒,它改变了佛罗里达州玛格丽塔酒的供应。

也不是 06/30 和 06/31 对 Cuba Libre 的 DC 地区的更新。

请考虑到零件是可互换的,并且每次有新物品到货时,它现在都可以使用以前的任何物品。

最后 - 如果我可以添加另一列显示套件可用性,而不管位置如何,这将是非常棒的,仅基于孩子的可用性。对于前。如果在 DC 有一个孩子 #3 而在 FL 没有孩子,他们 FL 可以假设他们有足够的库存来根据另一个位置的库存来制作饮料!

0 投票
1 回答
135 浏览

sql-server-2008 - Rewriting Outer 申请加入以获得性能

由于我对 Outer Apply 不太熟悉,因此我对重写上一个问题中的加入感到有点迷茫。它运行良好,但不适用于大量数据。对此的任何帮助表示赞赏。

上一个问题

0 投票
0 回答
458 浏览

sql - 如何在 SQL 语句中添加动态外部应用?

我有一个任务。

基本上我是从表中选择的。

我想根据来自不同表的动态数字进行外部应用(这意味着为每一行执行一些代码)。

换句话说,我想要动态数量的外部应用。

例子 :

我想到的是创建一个表值函数,它将为我返回一个包含所有行的表

对于该客户,然后选择结果。然而,为了做到这一点,我们必须用 dayanmic 列创建结构表。

换句话说,我试图实现这一点:

向表变量动态添加 50 列

但是结构表不能在表函数中访问。

任何帮助都适用。

0 投票
1 回答
167 浏览

c# - 使用导航属性的 T-SQL 到 LINQ 到 SQL

我似乎无法想出正确的相应 LINQ to SQL 语句来生成以下 T-SQL。本质上,我试图只返回一个客户地址的付款信息...... AR 地址,如果存在,然后是主地址,如果存在,然后是任何地址。

我们使用存储库模式来访问数据库,所以在支付存储库的方法中,我尝试过:

但是当我执行时.ToList(),它会在客户没有设置地址的记录上抛出NullReferenceException(对象引用未设置为对象的实例)。所以,我尝试了:

这将返回正确的结果,但它生成的 T-SQL 将整个 T-SQL 从上面放入外部应用程序,然后再次连接到PaymentCustomer。这似乎有点低效,我想知道是否可以提高效率,因为上面的 T-SQL 对于我正在使用的测试用例在 6 毫秒内返回。

附加信息:
问:我认为这里的问题是GetAll()返回IEnumerable,而不是IQueryable......看看这个GetAll()方法会有所帮助。- Gert Arnold
A:实际上,GetAll()当一直追溯时,返回Table<TEntity> System.Data.Linq.GetTable<TEntity>()Table<TEntity>执行IQueryable

但是,如果我没记错的话,DefaultIfEmpty()确实 return IEnumerable<Address>,这就是引发异常的原因,正如我在第一个 L2S 代码部分中提到的那样。

解决方案更新

好的,我知道我可以退回到直接加入表格并放弃使用导航属性,在这种情况下,我现在知道应该这样做。现在一切都说得通了。我刚刚习惯了更喜欢使用导航属性,但在这里,最好直接加入表格。

第二个 L2S 代码部分生成的 T-SQL 效率如此之低的原因是,为了访问 Address 表,它需要包含 Payment/Customer 数据。

当我直接加入表时,生成的 T-SQL 虽然不理想,但更接近所需的脚本代码部分。那是因为它不需要包含付款/客户数据。就在那时,“嗯,呃”的灯泡亮了。

感谢所有在这条发现之路上提供帮助的人!

0 投票
1 回答
296 浏览

sql - SQL Server 外部应用查询优化

我有两个表 - 表 A 和表 B。

表 A 有 121,903 行。表 B 只有 95 行。

我需要将表 A 与表 B 连接起来,这样我将获得表 B 的第一行,该行具有与表 A 匹配的行,按排序条件排序。

我正在使用以下查询来获取结果。它正确返回结果,但存在性能问题。

查询计划

目前执行此查询大约需要 1 分钟。有什么办法可以重写查询以提高性能?

请注意,它是一个数据仓库系统,上述查询是使用 CTE 表“TableAB”的大型查询的一部分。

谢谢。

0 投票
2 回答
52 浏览

sql - SQL:左连接 vs CASE 子查询——效率更高

你们认为哪一个更高效(负载更少)?

或者

只是想弄清楚sql引擎是如何工作的..

[我想在这个问题中研究什么] 在第一次查询中,这些表t2t3始终被调用,但在第二次查询中,只有在案例匹配时才会调用它们(因此负载较少 = 只检查 2 个表而不是 3 个表)排)?

0 投票
1 回答
59 浏览

sql - 外部应用在其中包含字符串比较时需要很长时间

我有一个查询:

我的cte回报将近 300 万行。此查询需要很长时间才能完成(每 4 分钟只返回 500 行)

但是在外部应用中没有比较的以下查询Keyword非常快:

问题是,我的查询中需要这个关键字比较。我现在的问题是,我应该如何更改我的原始查询以获得更好的性能?很高兴知道:

  • Project_Id 是int
  • SE_Id 是int
  • 关键字是nvarchar(2000)
0 投票
1 回答
1186 浏览

sql-server - 针对同一个表结果的外部应用(和交叉应用)

考虑以下脚本(使用 SQL Server 2017):

你怎么解释

  1. 我得到 5 行

  2. 第 1 列和第 2 列被命名为 c1 和 c2,而不是@mytable

  3. 我没有在脚本一中得到 mydate 并且只有在我编写它时才会得到它(*还不够)

  4. “这是一个文本”在第 2 到 5 行中返回 => 你如何解释?

在此处输入图像描述

0 投票
0 回答
61 浏览

c# - 如何强制 Linq-To-Sql 使用外部应用

我正在尝试创建一个 linq 查询,它为我提供了一个列表,其中包含来自主表的数字列以及详细记录的计数。我的问题是 linq 吐出一个没有外部应用的查询,这使得查询需要 15 秒。如果我自己使用外部应用创建 SQL,则相同的查询需要不到一秒钟的时间。

这将创建以下 sql

我正在尝试使用 linq 创建以下 SQL

我知道我可以只使用这样的第一个详细记录来创建外部应用

此 linq 创建以下 SQL 结果

是否有一种解决方案可以强制 linq 在使用 count 时创建外部应用,就像在上一个示例中对 FirstOrDefault() 所做的那样

谢谢斯蒂芬

0 投票
2 回答
85 浏览

sql - 如何在没有公共键的情况下连接 2 个表并随机生成第二个表的行

我有 2 张桌子.. [用户] 和 [问题]

用户表有..

问题表有..

现在,我想要的是,为每个 [User] 选择 5 个随机问题。

我试过这个查询..

结果就像这样..

问题在于,QuestId 是随机生成的,但如果您注意到,每个用户都有相同的随机生成问题。我希望每个用户都有不同的随机问题集。