2016-06-21 9 views
0

このトピックにはスレッドがたくさんあるようですが、Excelではほとんど機能しません。JETを使用してDistinctを選択し、PKEYを使用しない - 重複行

  1. 理想的にユーザーが新しい列を追加する場合、彼らはSQLを編集する必要はありません、可能であればので、すなわち*使用してすべての列:

    は、私は私が選択したいから、簡単なテーブルを持っています。 (これはパイプの夢ですか?)そうなら、返されたすべての列を指定するソリューションはOKです。 [名] & [日](連結)は、私が返される行を気にしない他のすべての列

  2. 別個である

  3. は行のみを返します。最初、最後、限界1 ...何か。彼らはすべてのタイプの組み合わせです。

  4. これは単に選択し、また

    name date  sales 
    andy 01/01/2010 100 
    andy 01/01/2010 900 
    andy 05/01/2010 100 
    alex 02/02/2010 200 
    alex 02/02/2010 200 
    alex 05/01/2010 200 
    dave 09/09/2010 300 
    dave 09/09/2010 300 
    dave 01/09/2010 300 
    

コードのシンプル速度の上に好まれている加入、行を新しいテーブルを作成または削除してはなりません。これは夜に実行するように残っているので、見栄えが良いが遅いです...そして、Excelは何百万もの行を持っていません!

事前に皆様に感謝します。

私はテーブルはこのように見て期待

UPDATE:

SELECT MAX(joined) 
    FROM 
     (SELECT [Single$].[date] AS [date], 
      [Single$].[name] AS [name], 
      name & date AS [joined] 
     FROM [Single$] 
     ) 
GROUP BY joined 
HAVING MAX(joined) IS NOT NULL 

しかし、私は知らない。

name date  sales 
andy 01/01/2010 100 
andy 05/01/2010 100 
alex 02/02/2010 200 
alex 05/01/2010 200 
dave 09/09/2010 300 
dave 01/09/2010 300 

      or 
andy 01/01/2010 900 
andy 05/01/2010 100 
alex 02/.... 

が、私はこれですべてのユニークなものを選択することができますどういうわけか、元のテーブルにこれを結合して、結合が一致する行を1つ維持します。これについて、参加が正しいのかどうかは分かりません。ありがとう

+0

期待した結果は何ですか? – jarlh

+0

作業を表示できますか?試したコードを表示しますか?何がうまくいかなかったのですか? – mnwsmit

答えて

0

[Name][Date]でグループ化された集約クエリを実行するだけです。他のすべての列については、数字と文字列の値に作用するMAX()またはMIN()のような集計を実行します。

SELECT [Single$].[name] AS [name], [Single$].[date] AS [date], 
     MAX([Single$].[sales]) As [sales], 
     MAX(...)  
FROM [Single$] 
GROUP BY [Single$].[name] AS [name], [Single$].[date] AS [date] 
+0

仕様のうち、「select ...すべての列、つまり '*' ...を使用すると、ユーザーがSQLを編集する必要がない新しい列を追加する場合はどうなりますか? – onedaywhen

+0

それは理想的ですが、非現実的かもしれませんか? – user3484792

+0

残念ながら、集約クエリの場合、アスタリスクは、明示的に 'GROUP BY'列または集約列を指定する必要がないため、機能しません。これらの他の列は、Min()、Max()などで述べたように集計する必要があります。 – Parfait

関連する問題