私は2つのSQLテーブル、ニュース、ニュースセクションを持っています。私は、4つの異なるタイプのニュースセクションを選択するときに、グループから最上位の行を表示したい。あなたがAPPLY
使用することができますグループでトップローを選択する方法
SELECT TOP (4) a.newsID, a.title, a.clicked, a.path, a.newsDate, c.sectionName, a.sectionID
FROM dbo.News a INNER JOIN
dbo.newsSection c
ON a.sectionID = c.SectionID
WHERE (c.SectionID = 21) OR (c.SectionID = 23) OR (c.SectionID = 36) OR (c.SectionID = 37)
GROUP BY c.sectionName, a.newsID, a.title, a.clicked, a.path, a.newsDate, a.sectionID
ORDER BY a.newsDate DESC
サンプルデータと望ましい結果は、あなたがしたいことをよりよく説明します。 SQL Serverタグを追加しました。 –
現在のクエリで何が問題になっていますか? – Parfait
データモデルについて私が理解していないことが1つあります。あなたはニュースとニュースセクションを持っています。だから私は2つのテーブルがニュースIDによって関連していると期待します。しかし、意外にも、あなたはsectionIDで参加します。ニュースにはどのようにsectionIDがありますか?ニュースをニュースセクションにするのではないでしょうか?それとも、これはあなたのクエリの単純なタイプミスですか? –