1
オーダーに複数の商品が含まれているテーブルのエントリを表示しようとしましたが、試した方法ではうまく動作しません。誰かが私に何が間違っているかを示すことができますか?私が試したものを複数の商品が注文されたオーダーを表示
Here's:
SELECT *
FROM TableX
WHERE (SELECT COUNT(Ordernumber) FROM TableX AS a WHERE a>1);
オーダーに複数の商品が含まれているテーブルのエントリを表示しようとしましたが、試した方法ではうまく動作しません。誰かが私に何が間違っているかを示すことができますか?私が試したものを複数の商品が注文されたオーダーを表示
Here's:
SELECT *
FROM TableX
WHERE (SELECT COUNT(Ordernumber) FROM TableX AS a WHERE a>1);
一つのオプションは、のための完全なレコードを取得するためにあなたの元のテーブルにこのサブクエリに参加、その後、複数の物品を持つ注文番号を識別するために、サブクエリを使用することですこれらの一致する注文。
SELECT t1.*
FROM TableX t1
INNER JOIN
(
SELECT Ordernumber
FROM TableX
GROUP BY Ordernumber
HAVING COUNT(*) > 1
) t2
ON t1.Ordernumber = t2.Ordernumber
このクエリは、指定された注文内のすべての記事が一意であることを前提としています。重複した記事が発生する可能性があり、そしてあなたは、あなたが代わりに次のHAVING
句を使用することができ、重複をカウントしません場合は、次の
HAVING COUNT(DISTINCT article) > 1
別のオプション:
SELECT *
FROM TableX
WHERE Ordernumber IN
(
SELECT Ordernumber
FROM TableX
GROUP BY Ordernumber
HAVING COUNT(*) > 1
)
動作しますが、かなり遅いit's:あり任意のより速い可能性? – AbsoluteBeginner
私はGROUP BYクエリを使って集計を行うことはありません。もう一つの選択肢を教えてください。 –