问题标签 [derived-table]

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 回答
6637 浏览

sql - 使用子查询派生表错误更新

我有以下 SQL 语句来简单地#temp使用 Sybase 15 数据库中的最新包版本号更新临时表。

对我来说(主要是 Oracle 和 SQL Server 的经验比 Sybase 多)这句话几乎没有错。但是,Sybase 会引发异常:

现在,我不明白这里有什么问题。我认为这是因为使用了聚合 / GROUP BY。当然,我可以将子查询放在临时表中并加入它,但我真的很想知道“正确”的方法应该是什么以及到底是什么错误。

任何想法或指导将不胜感激。

0 投票
2 回答
393 浏览

sql-server - 导出历史值并将其保存到单独的表中,或者仅在需要时从现有数据中计算历史值?

tl;博士关于处理数据库数据和设计的一般问题:

在某个时间点从其他数据中派生数据是否可以接受/是否有任何缺点,然后将该派生数据存储到单独的表中以保留该特定时间的值历史记录,或者,如果您从不存储从其他数据派生的数据,而是仅在需要时从现有数据中派生所需数据?

我的具体情况:

我们有一个数据库,我们在其中记录人们的假期和假期状态。我们跟踪他们还剩多少天,他们花了多少天,诸如此类。

一项设计要求发生了变化,现在要求我能够显示一个人在任何给定年份的 12 月 31 日还剩下多少天。所以我需要能够说,“鲍勃在 2010 年 12 月 31 日还剩 14 天”。

我们可以通过两种方式做到这一点:

  1. 一个 SQL Server 代理作业,它在 12 月 31 日捕获当时每个人的剩余天数,并将它们插入到类似“YearEndHistories”的表中,该表将包含您当时的 EmployeeID、Year 和 DaysRemaining。

  2. 我们不保留 YearEndHistories 表,但是如果我们想找出在某个时间拥有的天数,我们会循环遍历在该特定时间之前存在的所有添加和减去的假期。

我喜欢 #1 带来的确定感 --- 记录的值将由管理部门审查,并且不会争论或改变该数字的可能性。使用 #2,我喜欢效率 --- 需要维护的表少了,并且实际表中不存在派生数据。但是我有一种奇怪的恐惧,担心一些看不见的错误会溜走,人们的历史价值计算会开始搞砸等等。2020年我不想处理,“我以9.5天结束2012,而不是9.0!我的半天去哪儿了?!”

我们已经决定的一件事是不能修改前几年的值。这意味着永远不可能回到上一个日历年并添加假期或类似的东西。年末的值就是THE值,不管过去有没有过错。如果发现错误,将通过奖励或减去当年的休假时间来弥补。

0 投票
1 回答
371 浏览

sql - 使用联合和派生别名表从存储过程中的第一个表中排除结果

我有一个带有联合和派生表情况的存储过程。存储过程基本上需要返回所有Cases行 where Cases.AssnKey = AssnCtrl.pKey,包括不符合第一个表(因此是第二个)中的条件的行。

我已经尝试了几种方法。我的第一次尝试返回了所有符合条件的行,然后我了解到客户希望查看包含的所有案例。有一次,我有一个版本,它返回所有Case行加上符合第一个表中条件的行的重复项。在第二个表中,我试图从第一个表中排除记录以防止重复。

我已经到达以下,它解析,但抛出一个错误

“无效的对象名称'A'”。

我没有包括我的输入参数或声明,但它们都工作正常。任何帮助是极大的赞赏!

0 投票
0 回答
573 浏览

sql-server - 包含派生表的 SQL Server 查询

我创建了一个包含一个常规表和两个派生表(子查询)的选择查询。派生表都通过左连接与常规表连接。常规表包含超过 7000 行,但查询输出约为 3000 行。它必须等于常规表中的记录数。我的错误是什么?

我提到了所有的 where 子句。如果我把链接的页面变红了,那不是问题。

我还更改了派生表的表名和列名。现在所有表名和列名都是唯一的。

但仍然是同样的问题。当我删除 select 中的最后两个 case 语句时,我确实得到了所有输出行,但我在这些 case 语句中看不到任何问题。

0 投票
1 回答
83 浏览

mysql - 从 MySql 中的派生表中选择

我有一张T这样的桌子:

这里 ID 不是主键。
我执行了一些操作并根据 ID 对结果进行分组,所以我得到了一个T1这样的表:

现在由于上述操作T消除了一些存在的ID 。 现在我想再次对 进行一些操作,并再次希望根据但仅对中列出的那些 ID对结果进行分组。 我怎样才能在 MySql 中做到这一点?T1
TIDT1

0 投票
1 回答
1589 浏览

mysql - 在Mysql中查找哪个条目出现的最大次数

我有一张T这样的桌子:

我想找出哪个 ID、品牌组合出现超过 50% 的 ID。例如:这里的结果应该是

因为 (2,300) 在 ID 2 中出现了 3 次中的 2 次。在 ID1 中,两种组合都是 50% 次,所以 ID 1 没有行。
现在我这样处理它:
首先我找到了每个 ID 的计数,品牌组合:

然后我列出所有满足上述条件的 ID

它工作得很好,但问题是我无法获得相应的品牌,因为在上面的查询中,我给出

然后它总是给桌子的第一品牌。
这是sql小提琴

0 投票
1 回答
698 浏览

sql-server - SQL Server 在派生表中使用联合引用字段

我对一些派生表有一些疑问,希望有人能够提供帮助。我得到的是选择语句中的 2 个派生表,然后使用枢轴水平而不是垂直显示结果。

到目前为止,我得到的是:

我想要做的是引用各个列而不是使用 SELECT *,但我不知道该怎么做。如果我从联合中删除所有内容,我可以让它工作,但是当我把联合放入它时它不起作用,我必须使用 SELECT *.

有人对出了什么问题有任何想法吗?

谢谢

亚历克斯

0 投票
2 回答
2640 浏览

sql - SQL 派生表导致未知列

我有一个表,它可以代表一组来自多个不同表的对象。这些对象都有一个id, 引用object.ref_id

我正在尝试通过 选择原始对象(从 引用的表中object.table_nameobject.id。为此,我尝试使用以下 SQL 查询。虽然这会导致#1054 - Unknown column 'entity.id' in 'where clause'.

我究竟做错了什么?

案例示例

虽然,对于我来说,FROM 子句不像示例中那样简单,因为这个值通常是从object.table_name.

使用 TOMBOM 的方法进行更新

使用 Tombom 的解决方案会导致错误,为了测试,我已经替换了 CONCAT 函数中的变量。

#1243 - 给 EXECUTE 的未知准备好的语句处理程序 (stmt)

0 投票
1 回答
62 浏览

php - 该请求适用于 phpadmin 但不适用于我的 php 代码

让我举个例子……我不能在 php 中创建这个视图(而我可以在 phpmyadmin 中)

但我可以在 php 中做到这一点:

我真的不明白..首先,对不起我的英语,我是法国人..我真的不明白为什么在 phpadmin 上运行的请求在我的 php 代码中不起作用..probaby派生表...所以,我希望获得最后的评分 Fitch:phpmyadmin 中的 SQL 请求完美运行:

在 php 中,以下代码无法运行:

让我再举一个例子……

我无法在 php 中创建此视图(而我可以在 phpmyadmin 中)

但我可以在 php 中做到这一点:

我真的不明白..提前谢谢,

0 投票
2 回答
1451 浏览

sql - 将新列添加到视图中的派生表

我试图弄清楚如何在不修改基础表的情况下将新列添加到视图中的派生表。让我解释一下我必须做什么:

我需要将简化的 MQSA 模块添加到在 SQL Server 上运行的现有 RIS 应用程序中。我需要显示一份患者名单,这些患者的乳房 MRI 外行信件应邮寄,每 11 个月发生一次。一旦列表上的项目被打印出来,它需要从列表中掉下来,直到它再次到期。

为此,我需要一个额外的列来记录上次打印日期。如果当前日期与上次打印日期之间的天数大于 334 天,则需要在列表中显示。

我的问题是我不允许修改现有的数据库,所以我必须在一个新的表中,在一个单独的数据库中拥有这个列。我在这个单独的数据库中创建了一个视图,其中包含来自现有数据库的表,它为我提供了正确格式的未过滤数据列表。

我在新数据库中添加了一个表,该表记录了打印列表中的项目时的相关 ID 和最后打印日期。我已将此新表添加到视图中,其中一个表具有左外连接,并检查了最后打印日期列,以便成为结果列表的一部分。

我不知道如何将新表与视图结合在一起,以仅显示应打印的普通字母。新表当然是空的,其中还没有数据,因为还没有打印任何内容。只是出于好奇,我已经手动将数据(两列 id)复制到新表中,以测试它是否可以工作,并且确实可以正常工作,并按预期工作。

如果我能以某种方式将视图中的数据复制到这个新表中,它会自动更新以反映视图中的变化,我可以像这样轻松完成我的任务:

我对触发器了解不多,所以我不知道这是否是一种选择,因为我正在使用一个包含多个表的视图。

任何想法,将不胜感激。我只需要知道我应该从哪个方向开始我的研究。

谢谢!

编辑:也许我的问题应该是如何镜像另一个数据库中的表?