コード、年、パーセントの3つの列を持つ表があります。私はこの後、2009年で最低(最小限)の割合でコードを返す必要がsql - 最大値を見つける
は、私はまた、私が作った他のテーブルにexsistコードの名前をしたいです。
私はCREATE VIEWを使用してと思うが、私はそうしないことを好みます。
コード、年、パーセントの3つの列を持つ表があります。私はこの後、2009年で最低(最小限)の割合でコードを返す必要がsql - 最大値を見つける
は、私はまた、私が作った他のテーブルにexsistコードの名前をしたいです。
私はCREATE VIEWを使用してと思うが、私はそうしないことを好みます。
Select table.code, table.year, table.percentage, othertable.name
from table
inner join othertable on table.FKId = othertable.PKid
where year = 2009
and percentage =
(select min(percentage)
from table
where year = 2009)
othertableを含むように更新されました...名前がないためです。
は今、私たちはテーブル名が...今私は年が文字列であることを知っている第三の時間を更新したことを を更新しました。サンプルデータ:コメントから
Select E.Code, C.Name
From dbo.Exam E
inner join dbo.Course C
ON E.Code = C.Code
Where E.Year = '2009' and --<-- PROBLEM LIKELY HERE year was string not int.
E.Fail = (select MIN(E2.Fail)
from dbo.Exam E2 where E2.Year = '2009') --<--Don't forget here too.
INSERT INTO Exam VALUES(333,'2009',40)
INSERT INTO Exam VALUES(333,'2009',20)
INSERT INTO Exam VALUES(555,'2009',19)
INSERT INTO Exam VALUES(444,'2009',19)
INSERT INTO Exam VALUES(777,'2009',23)
INSERT INTO Exam VALUES(333,'2009',0)
INSERT INTO Course VALUES(111,'Name1',5)
INSERT INTO Course VALUES(333,'Name2',5)
INSERT INTO Course VALUES(444,'Name3',6)
INSERT INTO Course VALUES(555,'Name4',3)
INSERT INTO Course VALUES(777,'Name5',3)
INSERT INTO Course VALUES(999,'Name6',6)
仮定が結果が Name2は、5
正確に私が投稿しようとしていたもの。私を狙撃用1:P –
はまだコードの名前を調べる必要がありますが、それはどこcode' – Andomar
@xQbert 'セレクトコード、分(パーセント)でいただきました!間違って参加するのです - それは動作しません。各コードの最小パーセンテージが見つかります。 –
あなたは今年の最安割合を見つけることgroup by
を使用して、参加することができなければなりませんですメインテーブルに戻って対応する他の列を見つける:
select *
from CodeYearPercTbl cyp
join CodeTbl c
on c.Code = cyp.Code
join (
select Year
, min(Percentage) as MinPerc
from CodeYearPercTbl
group by
Year
) as filter
on filter.Year = cyp.Year
and filter.MinPerc = cyp.Percentage
where cyp.Year = 2009
表-1:コード、年、パーセンテージ 表2:コード、コードネーム
select T1.Code,T2.CodeName,T1.Percentage from
(
select TOP 1 Code,Percentage
from Table-1
where Year = '2009'
order by Percentage asc
) T1 inner join Table-2 T2 on T1.Code = T2.Code
はこれを試してみてください:
select a.Code, c.Name
from YourTable a inner join AnotherTable c on a.Code = c.Code
where a.Percentage = (select MIN(Percentage)
from YourTable b where b.Year = '2009'
)
'割合によってyourtableどこ年= 2009オーダーからネクタイコードでトップ1を選択' –
@Oded Alwayesはビューが既に私のDBに定義されているという問題を私に与えます。私はこれがウェブであることを読んで、私はそれを解決する。しかし、時々、問題は繰り返されます。 –
結びつきは可能ですか? 1年に2つのコードが同じパーセンテージを持つことはできますか? – Sparky