【问题标题】:Simple select statement when member is involved涉及成员时的简单选择语句
【发布时间】:2012-01-13 08:52:54
【问题描述】:

我确信这是一个问题可以得到的最简单的问题,但我被它难住了,所以我想我会问,希望能得到快速的答复。使用 OLEDB 连接我想做一个选择语句,但对于我从中选择的表,表成员也必须在那里,这似乎弄乱了我的结果。

通常我会写来获取列“col1”:

SELECT lib1.table.col1 FROM lib1.table 

对于我需要信息的表,该表有一个“子成员”。从我收集到的语法是这样的:

SELECT lib1.table(submember).col1 FROM lib1.table(submember)

问题是结果给了我表格中的每一列,而不仅仅是我的“col1”数据。我希望这能很好地解释我正在寻找的东西。提前感谢任何提供帮助的人。

【问题讨论】:

  • 为什么要使用 vb.net 和 vba 的标签?这是两种完全不同的语言/技术...
  • 这些是建立 OLEDB 连接的地方
  • 那么您有一个 VB.NET 应用程序和一个 VBA 应用程序,它们都使用相同的 select 语句?
  • 说实话,我从未见过这种子成员语法。您使用的是什么 DBMS?
  • 尝试使用括号表示法而不是点和括号。所以lib1[table][submember][col1]

标签: sql vb.net vba ibm-midrange


【解决方案1】:

您应该能够在QTEMP 中创建ALIAS

CREATE ALIAS QTEMP.TABLE FOR LIB1.TABLE (SUBMEMBER)

然后通过临时创建的别名查询:

SELECT COL1 FROM QTEMP.TABLE

连接结束时会自动删除。

【讨论】:

  • 同意,在QTEMP 中创建这些类型的临时aliases(相当于每个作业、完全授权的临时目录)。如果您的连接工作无法访问它,那么无论如何您都会遇到各种麻烦......
【解决方案2】:

为 library.table(member) 创建别名 library.aliasname

然后对别名进行选择

【讨论】:

  • 我无权在我的服务器上创建表。还有其他想法吗?
  • 据我所知,这是唯一的选择。我不知道 6.1 或 7.1 能提供什么。
  • 这实际上是我最终做的(或多或少)。感谢您的所有帮助
猜你喜欢
  • 2016-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-28
  • 2015-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多