こんにちは私はこれを持っていますitem about insert if not existsここに。私が知りたいことの1つは、最新のアイテムをCompResultsからResultDateで注文し、Competitorsテーブルに挿入したいのですが、どうすればいいですか?SQL:条件付き挿入
エラーが発生しました:SELECT DISTINCTが指定されている場合は、ORDER BY項目が選択リストに表示されている必要があります。
こんにちは私はこれを持っていますitem about insert if not existsここに。私が知りたいことの1つは、最新のアイテムをCompResultsからResultDateで注文し、Competitorsテーブルに挿入したいのですが、どうすればいいですか?SQL:条件付き挿入
エラーが発生しました:SELECT DISTINCTが指定されている場合は、ORDER BY項目が選択リストに表示されている必要があります。
使用Row_Number
は、各項目
Insert into Competitors(col1,col2..)
Select col1,col2,..
(
Select row_number()Over(partition by Name order by ResultDate desc) Rn, *
From CompResults cr
NOT EXISTS (SELECT 1 FROM Competitors c
WHERE cr.Name = c.cName)
) a
Where Rn = 1
の最新のレコードを取得するためにも、あなたは以下のようにすることができます:
INSERT Competitors (cName)
SELECT
A.Name
FROM
CompResults A INNER JOIN
(
SELECT
CR.Name,
MAX(CR.ResultsDate) MaxResultsDate
FROM
CompResults CR
) B ON A.Name = B.Name AND A.ResultsDate = B.MaxResultsDate
WHERE
NOT EXISTS (SELECT 1 FROM Competitors c
WHERE c.cName = A.Name)
こんにちは、あなたはselect文のフィールド順を使用する必要があり、私はあなたがいると思いますSQL Serverを使用して
サブクエリを使用することができます
INSERT Competitors (cName)
select Name
from (
SELECT cr.Name,max(cr.ResultDate)
FROM CompResults cr
WHERE NOT EXISTS (SELECT * FROM Competitors c
WHERE cr.Name = c.cName) group BY cr.name) as t order by ResultDate
providあなたのテーブル構造 – Beginner
あなたが使用しているRDBMSを最初に見つけ出す – Strawberry
1)ORDER BYはINSERTを行うとき意味がありません。 2)エラーメッセージにすべてが表示されます。 – jarlh