特定のデータベースエントリにつき1行だけを返す必要があります。例えば、私が持っている場合:MySQLでSQL SELECT DISTINCTとGROUP BYの問題
ID col1 col2
1 1 A
2 1 B
3 1 C
4 2 D
5 3 E
6 4 F
7 4 G
を私は、クエリ
SELECT DISTINCT col1, col2 FROM table GROUP BY col1
を実行することができますし、私が取得します - 私は同じことを実行する場合、私が欲しいものですが、>
ID col1 col2
1 1 A
4 2 D
5 3 E
6 4 F
をSQL Serverでクエリを実行するとエラーが発生します。
基本的に、テーブルの各行から1つ(または最初)の "col1"と "col2"のみを返す必要があります。
SQL Serverの正しい構文は何でしょうか?
ありがとうございました!
アンドレイ
EDIT:
MySQLで動作する完全なクエリがある - >
SELECT DISTINCT list_order, category_name, category_id
FROM `jos_vm_category`
WHERE `category_publish` = 'Y'
GROUP BY list_order
ので、私はそれからカテゴリ名とCATEGORY_IDを返すようにしたい各 "list_order" 数FOR同じ "list_order"番号を持つ他のすべての行を無視する
@marc_s:OPが取得するエラーは、集計関数の一部でない限り、SQL ServerではすべてのSELECTフィールドがGROUP BY句に表示される必要があるということです。 MySQLはこれを必要としません。 –
MSSQLでエラーが "列 'jos_vm_category.category_id'は、集計関数またはGROUP BY句に含まれていないため、選択リストで無効です。 – Andrej