首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"time_stamp“列过于模糊

"time_stamp“列过于模糊
EN

Stack Overflow用户
提问于 2014-02-11 15:29:14
回答 2查看 814关注 0票数 2

我已经在这个话题上做了相当多的google搜索,我知道这是一个重复的问题。但是,下面是我的查询:

代码语言:javascript
复制
SELECT 
    i.tag_name, i.value, i.aggregate_id, i.aggregate_interval, i.time_stamp
FROM 
    OPENQUERY(odbcclient, 
              'Select 
                   time_stamp, tag_name, value, 
                   aggregate_id, aggregate_interval 
               from 
                   canarydata.data 
               where 
                   aggregate_id = ''TimeAverage2'' 
                   and aggregate_interval = ''1:00:00:00'' 
                   and tag_name LIKE ''%SearchVal%'''
              ) AS i

当我运行这个查询时,它执行得很好。但是,一旦我尝试将其创建到视图中,就会收到以下错误消息:

来源:.Net SqlClient数据提供程序 错误信息:找不到列"time_stamp“或用户定义的函数或聚合"time_stamp.ToString",或者名称不明确。

如何重写查询以在视图中运行?

另外,从脚本执行这个查询和在视图中执行这个查询有什么区别呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-13 20:42:11

上次碰上类似的东西时,我要做个猜测。Server的视图设计器在数据库支持的某些方面将失败,我相信在视图设计器中使用openquery的方面就是其中之一。

如果我是正确的(而且您还没有尝试像下面这样编写脚本),您应该能够通过脚本直接创建视图,如下所示:

代码语言:javascript
复制
CREATE  VIEW dbo.myView AS

    SELECT i.tag_name, i.value, i.aggregate_id, 
           i.aggregate_interval, i.time_stamp
    FROM OPENQUERY(odbcclient, 
       'Select time_stamp, tag_name, value, 
               aggregate_id,aggregate_interval 
        from canarydata.data 
        where aggregate_id = ''TimeAverage2'' 
              and aggregate_interval = ''1:00:00:00'' 
              and tag_name LIKE ''%SearchVal%''') 
    AS i
GO
票数 5
EN

Stack Overflow用户

发布于 2014-02-14 23:07:07

马修斯建议后全员指挥:

代码语言:javascript
复制
USE [ODBC]
GO

 /****** Object:  View [dbo].[Averages]  ******/
 SET ANSI_NULLS ON
 GO

 SET QUOTED_IDENTIFIER ON
 GO

 CREATE View [dbo].[Averages] AS

 SELECT     i.time_stamp, i.tag_name, i.value, 
            i.aggregate_id, i.aggregate_interval
 FROM       OPENQUERY(odbcclient, 
                      'Select time_stamp, tag_name, value, 
                              aggregate_id, aggregate_interval 
                       from data.data 
                       where aggregate_id = ''TimeAverage2'' 
                             and aggregate_interval = ''1:00:00:00'' 
                             and tag_name LIKE ''%Point%''')
            AS i
 GO
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21706046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档