2012-04-18 63 views
0

我有我的SQL视图以下字段:SQL与特定的文本替换场

name | description | date

,我要查询的maxmin日期和打印新视图

status | name | description | starting

其中在status字段是文本字段将显示longest timeshortest time。这个领域是全新的,并没有内置到任何表格中,我怎样才能在视图中创建这个字段?

编辑:

我要额外的外地status添加到我的观点,所以请一个额外的列。因此,我有

create or replace view one (name, description, starting) as 
-- SQL STUFF HERE... 

从这个观点,我要抓住最大,并从它和工会这两个选项一起分,但加上其描述该行是否有longest timeshortest time一个额外的列。为了得到

create or replace view two (status, name, description, starting) as

在我已经写了

select name, longname, max(starting) from one 
union 
select name, longname, min(starting) from one; 

的时刻,这样就会打印出三列,但我需要添加额外的第四列status但我不知道这个怎么做。

+1

你能后你有这么远的SQL? – KyleNZ 2012-04-18 07:43:39

+0

我只想知道如何创建状态栏 – SNpn 2012-04-18 07:46:37

+0

状态栏后面的逻辑是什么?它将如何生产?发布您的查询或预期的结果与数据一起解释 – bjan 2012-04-18 07:50:36

回答

1

只需使用一个简单的字符串:

select 'longest time' AS status, name, longname, max(starting) from one 
union 
select 'shortest time' AS status, name, longname, min(starting) from one; 
0

不知道你想要什么开始显示,因为你没有描述它,但group by是你正在寻找的,你可以在你的日期运行聚合函数来获取你想要的信息。你可能想要一个不同的日期格式,所以你可能想使用Convert而不是Cast来按照你想要的格式获取日期。

SELECT 
    CAST(MAX(Date) AS NVARCHAR(20)) + ' ,' 
    + CAST(MIN(Date) AS NVARCHAR(20)) AS Status 
    Name 
    Description 

FROM tblMyTables 
GROUP BY 
    Name, 
    Description