common-table-expression

    0热度

    3回答

    在SQL Server中,我有这个简单的表,我试图让所有的员工列表与他们的域管理器: IF OBJECT_ID('tempdb.dbo.#employees') IS NOT NULL DROP TABLE #employees CREATE TABLE #employees ( empid int, empname varchar(50), mgrid int,

    1热度

    1回答

    我正试图重建我的公司kardex。我需要使用“平均成本方法”,该平均成本方法应该考虑每个交易在其特定日期时间的平均成本。 我有一个简单的表格,包含所有传入/传出库存事务(所有动作)。 每笔进货交易(采购)的价格都正确,因为我从相应的发票中获取单位成本。 问题: 所有销售交易(即期库存)都没有单位成本(因为我需要重建这些成本)。 我知道我可以使用游标,但我们都知道那里的性能问题。 我准备了一个简单的

    0热度

    2回答

    我有一个递归查询按预期工作,用于计算库存计算的加权平均成本。我的问题是,我需要根据不同列分组的相同查询得到多个加权平均值。我知道我可以通过多次计算来解决问题,每个键列都有一个问题。但是由于查询性能的考虑,我希望它被遍历一次。有时我有1M +行。 我简化了数据,并将加权平均值换成了一个简单的总和,使我的问题更容易遵循。 如何使用递归cte得到下面的结果?请记住,我必须使用递归查询来计算加权平均成本。

    0热度

    2回答

    所以我有这样类似的请求 WITH customers_in_usa AS ( SELECT customerName, state FROM customers WHERE country = 'USA' ) SELECT customerName FROM customers_

    2热度

    3回答

    假设我们有下一个T-SQL代码: ;WITH [CTE] AS ( SELECT 0 [A], 'FAULT' [B] UNION ALL SELECT 1 [A], '1' [B] UNION ALL SELECT 2 [A], '2' [B] ), [CTE2] AS ( SELECT [B] FROM [CTE]

    1热度

    1回答

    当我有一个在整个select语句中重复多次的复杂子查询时,在Hive中构建/写入查询的最佳方式是什么? 我最初为每次运行前刷新的子查询创建了一个临时表。然后,我开始使用CTE作为原始查询的一部分(丢弃临时表)以提高可读性并注意到性能下降。这让我很好奇哪些实现方法在需要重新使用子查询时的性能方面是最好的。 我正在使用的数据包含超过1000万条记录。以下是我使用CTE编写的查询的一个示例。 with

    0热度

    2回答

    我试图推导年金支付计划。我知道网上有一些解决方案,但由于我需要对每月付款金额进行更改,因此我无法使用这些解决方案,并且由于安全策略,我无法安装新的软件包。现在我很难计算每月期初余额,因为它取决于最后一行计算的资本。有没有一种更有效的方式来做到这一点,然后光标。我现在有三千万行。 数据我: 这是一个很简单的例子,可以有不同的价格,不同的每月付款和日期失踪。所以我无法在线使用可用的解决方案。 最终的结

    1热度

    2回答

    在尝试为这个问题找到一个合适的解决方案并且几乎将所有的头发都拉出来之后,我决定前来寻求帮助。 问题: 我有4列,看起来像这样的表: id | family_id | parent_id | age | ------------------------------------- 1 | 1 | 0 | 45 | 2 | 1 | 7 | 23 | 3 | 1 | 0 | 59

    0热度

    1回答

    查询不进行递归,它只是获取锚部分(父母id为空的ids)。 任何人都可以帮我发现我的错误吗?我已经尝试了很多东西,但我总是检索相同数量的行,没有父ID的IDS。 WITH EmpTree AS ( SELECT e.DWH_Dim_TFS_File_DWH_FileParent_Guid ,e.DWH_Dim_TFS_File_DWH_File_Guid ,1 A

    1热度

    2回答

    如果我有开始和结束日期,然后是单独的开始和结束时间,喜欢返回日期范围内每个日期的时间范围。 这里有一个小例子: 我有以下变量设置为以下样本值: declare @StartDate date declare @EndDate date declare @StartTime time declare @EndTime time declare @interval int = 10 set