2017-01-17 3 views
0

以下のクエリで集計グループ句エラーが表示され続けます。私はSQLを初めて学んだので、それを理解することはできません。私はJDEppsinテーブルのために重複したレコードを取得し続けています。私は、これは私が作ってみたものですが、私はちょうど私に参加する方法を知らないグループに仮想テーブルの使用についてGoogleで検索SQLサーバーのグループ句エラー

SELECT 
     JDEWorkOrderIn_LastImport.WorkOrderNumber, 
     JDEWorkOrderIn_LastImport.Quantity, 
     JDEWorkOrderIn_LastImport.LineNumber, 
     JDEWorkOrderIn_LastImport.SKU, 
     JDEWorkOrderIn_LastImport.SKUDesc1, 
     JDEWorkOrderIn_LastImport.SKUDesc2, 
     arc_JDEPPSIn.PalletSheet, 
     arc_JDEPPSIn.PalletConfigDesc, 
     arc_JDEPPSIn.LabelAlcVol, 
     arc_JDEPPSIn.CartonInkjetCode, 
     arc_JDEPPSIn.SpecialInstructions, 
     JDEWorkOrderIn_LastImport.WAWR02 
     FROM [WBPC_MES_Integration].[dbo].[arc_JDEPPSIn] 
join [WBPC_MES_Integration].[dbo].[JDEWorkOrderIn_LastImport] on arc_JDEPPSIn.WorkOrderNumber = JDEWorkOrderIn_LastImport.WorkOrderNumber 
where JDEWorkOrderIn_LastImport.startdate between getdate()-7 and getdate()+5 
group by arc_JDEPPSIn.workordernumber 

自己

+0

列リストは、集計関数またはGROUP BY句のいずれにも含まれていないため、選択リストでは無効です。 – ydoow

+0

現在のクエリのサンプル出力を提供してください。 – Serge

+0

このエラーは、問題の内容を正確に示しています。集計関数ではないSELECT内のすべての列(SUM()、AVG()など)はGROUP BY句内になければなりません。 SELECTに集約関数ではなく、集計関数ではない12の列があります。基本的なSQLに関する本やオンラインチュートリアルを見つける必要があります。 –

答えて

1

たびにそれを理解しようとしているので、教えてよGROUP句を使用すると、SELECT文の非集計値(SUM、COUNT、AVGなどではありません)がグループごとに表示される必要があります。

このように、集計値がない場合は、グループ化する必要はありません。重複を削除しようとしている場合は、代わりにSELECT DISTINCTを使用します。そうでない場合は、グループを削除してください。

+0

エラーとして別名を使用できます。テキストデータ型を選択できません。 DISTINCTと比較することはできません。 – SGR4eva

+0

申し訳ありませんが、私はあなたがテキストデータタイプを使用していたことを認識していませんでした。可能であれば、私はvarchar(max)で置き換えますが、テキストデータ型は廃止されましたが、データベースにテキストデータ型と変更不可能な列が1つあります。 –