0

sqlビューには次のフィールドがあります。

name | description | date

maxここで、日付と日付を照会しmin、新しいビューを次のように印刷する必要があります

status | name | description | starting

フィールドのどこにstatusテキストフィールドが表示さlongest timeれ、shortest time。このフィールドは完全に新しく、どのテーブルにも組み込まれていません。ビューでこのフィールドを作成するにはどうすればよいですか?

編集:

statusビューにフィールドを追加したいので、列を追加します。そういうものとして、私は

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

longest timeこのビューから、最大値と最小値を取得し、これら2つの選択を結合する必要がありますが、その行にまたはが含まれるかどうかを示す列を追加しますshortest 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;

これで3列が出力されますが、4列目を追加する必要がありますが、statusその方法がわかりません。

4

2 に答える 2

1

単純な文字列を使用するだけです。

select 'longest time' AS status, name, longname, max(starting) from one
union
select 'shortest time' AS status, name, longname, min(starting) from one; 
于 2012-04-18T07:57:39.780 に答える
0

あなたがそれを説明していないので、あなたが何を望んでいるのかわかりませんが、グループ化はあなたが探しているものであり、日付に対して集計関数を実行して、必要な情報を取得できます。別の日付形式が必要な場合があるため、キャストではなく Convert を使用して、日付を目的の形式で取得することをお勧めします。

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

FROM tblMyTables
GROUP BY 
    Name, 
    Description
于 2012-04-18T07:47:35.303 に答える