残りのクエリで誰かが助けてくれますか?顧客が同じ日に物を買った行を返す
このクエリは、私の会社のすべての売上から、Customer、AdressNr、Date、Employee、Article、ActivityNr を提供します。
SELECT ad.Name + ' ' + ad.Vorname AS Customer,
pa.Kunde AS CustomerNr,
CONVERT(VARCHAR(10),p.datum,126) AS Date,
(SELECT a.name + ' ' + a.Vorname AS Name FROM PRO_Mitarbeiter m LEFT JOIN ADR_Adressen a ON a.AdressNrADR=m.AdressNrADR WHERE m.MitNrPRO = l.MitNrPRO) as Employee,
p.Artikel_1 AS Article,
l.AufgabenNrCRM AS OrderNr
FROM ZUS_Therapie_Positionen p
INNER JOIN CRM_AufgabenLink l ON l.AufgabenNrCRM = p.Id_Aktivitaet
INNER JOIN CRM_Aufgaben ab ON ab.AufgabenNrCRM = p.Id_Aktivitaet
INNER JOIN PRO_Auftraege pa ON pa.AuftragNrPRO = ab.AuftragNrPRO
INNER JOIN ADR_Adressen ad ON ad.AdressNrADR = pa.Kunde
INNER JOIN ADR_GruppenLink gl ON gl.AdressNrADR = ad.AdressNrADR
INNER JOIN ADR_Gruppen g ON g.GruppeADR = gl.GruppeADR
WHERE l.MitNrPRO != 0
GROUP BY l.AufgabenNrCRM,ad.Name,ad.Vorname,pa.Kunde,p.datum,p.Artikel_1,l.MitNrPRO
ORDER BY pa.Kunde,p.datum,l.AufgabenNrCRM
私の目標は、これをフィルタリングして、顧客が購入した行だけを戻し、同じ日に1つのものを得ることです。顧客が同じ日に同じ記事を2回購入したかどうかは関係ありません。これもまた見て欲しい。
SQLフィドルを書くのは複雑ですが、この写真では私の目標は何かを見ることができます。私は左側にあるXですべての列を取り除きたいと思います。サークルで保存したいと思います。
上記のクエリのサンプル結果と取得したい結果を入力してください。 – Alex
[count> 1のレコードを検索するためのSQLクエリの可能な複製](http://stackoverflow.com/questions/7151401/sql-query-finding-records-where-count-1) –
1)あなたは'GROUP BY'ではなく、集合関数はありません。 'DISTINCT'が本当に必要なのでしょうか(同じ複数の行がある場合、または行がすでに一意であり、必要がない場合)2〜3つのカラム、特に別々のテーブルからのカラムの場合、おそらく1つ以上のテーブルをあらかじめ集計するなど、何か他のことを試してみてください。 –