2016-05-25 7 views
0

テーブルTabEPの既存の変数(EP)から値が移入される新しい変数(y0)を持つ新しいテーブルを作成しようとしています。 y0の値は、指定した値(2)以上の最も近い数値(> =)になります。where関数<= 2を使用してsqlのグループのトップ1値を選択する

これは私が現在持っている値のEPのテーブルTabEPのモックアップです:私が持っていると思いますどのような

ID EP 
_ _ 
A | 1 
A | 2  
A | 3 
B | 1 
B | 2.2 
B | 3 
C | 1 
C | 2.3 
C | 3 

は次のように読み取るために私の新しいテーブル(#1 EP1)である:

ID Y0 
_ _ 
A | 2  
B | 2.2 
C | 2.3 
これは、選択を終わる何

select * into #EP1 
from 
(select distinct 
     id, 
     (select top 1 EP from #TabEP where EP >=2 order by EP desc) as 'y0' 
from TabEP) EP1 

は次のとおりです:

これは私がいじりされている私のサンプルコードです

ID Y0 
_ _ 
A | 2  
B | 2 
C | 2 
+0

構文エラー... – jarlh

+0

申し訳ありません最後に追加しません からTabEP)EP1 – user3777003

+1

'EP <= 0.01'、これはタイプミスですか? '> ='ではないでしょうか?そして、あなたは最も近いが、より小さい**、そして、3を意味しますか? – sagi

答えて

0

これを試してみて、これがうまくいくなら、私に知らせて:

SELECT ID, MAX(EP) Y0 
FROM TabEP 
WHERE EP < 3 
GROUP BY ID 
+0

こんにちは、 のためにこれをしなければならない私の実際のコードでは 私はこのメッセージを受信 「メッセージ512、レベル16、状態1、行26 サブクエリは複数の値を返しました。この=、!=、<, <= , >、> =、またはサブクエリが式 " – user3777003

+1

@ user3777003"として使用されている場合、上記のSELECT文はそのエラーメッセージを返すことはできません。 26行目? 4行のうち... – jarlh

+0

笑今使用しているDBMSを知りたい –

0
insert into EP1 (ID, Y0) 
    select ID, min(EP) as Y0 
    from TabEP 
    where EP >= 2 
    group by ID; 

EP1:

| ID | Y0 | 
|----|-----| 
| A | 2 | 
| B | 2.2 | 
| C | 2.3 | 

sqlfiddle

関連する問題