2016-04-07 17 views
0

meine Daten zu entfernen, ist wie:Wie Duplikate in mysql Abfrage

org_id org_emp_id name day1 day2 day3 day4 day5 day6 day7 day8 day9 day10 day11 day12 day13 day14 day15 day16 day17 day18 day19 day20 day21 day22 day23 day24 day25 day26 day27 day28 day29 day30 
'176' '1' 'New Org NO' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'P' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 
'176' '1' 'New Org NO' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'P' 'NA' 'NA' 'NA' 'NA' 
'176' '1' 'New Org NO' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'P' 'NA' 'NA' 'NA' 
'176' '1' 'New Org NO' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'P' 'NA' 'NA' 

ich führen möchte wie ::

org_id org_emp_id name day1 day2 day3 day4 day5 day6 day7 day8 day9 day10 day11 day12 day13 day14 day15 day16 day17 day18 day19 day20 day21 day22 day23 day24 day25 day26 day27 day28 day29 day30 
'176' '1' 'New Org NO' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'NA' 'P' 'NA' 'NA' 'NA' 'NA' 'NA' 'P' 'P' 'P' 'P' 'NA' 
+0

'SELECT DISTINCT .... Ihre Abfrage ...' – 1000111

+0

Mögliche Duplikate von [So erhalten Sie eindeutige Werte aus kommagetrennten Werten?] (http://stackoverflow.com/questions/4537838/how-to-get-unique-values-from-comma-separated-values-field) –

+0

Mögliche Duplikate von [MySQL kopieren/doppelte Datenbank] (http://stackoverflow.com/questions/25794/mysql-copy-duplicate-database) –

Antwort

0

Verwenden DISTINCT in Ihre Abfrage-Anweisung, ex: DISTINCT Id wählen, Name, Alter von Ihrer_Tabelle

Das bedeutet DISTINCT ID vermeiden Sie die doppelte ID in Ihrer Tabelle

0

Es geht nicht um das Entfernen von Duplikaten, da keiner der Datensätze im ersten Resultset ein Duplikat eines anderen ist. Sie möchten die 'P' Werte für alle Felder in einem einzelnen Datensatz zusammenführen. Sie können Gruppe und max() Funktion das erwartete Ergebnis achive:

select org_id, org_emp_id, name, max(day1) as day1, ... , max(day30) as day30 
from yourtable 
group by org_id, org_emp_id, name 

Sie müssen alle Dayn Felder anstelle der in der obigen Abfrage ... aufzulisten. Wenn für ein TagN-Feld alle Werte 'N/A' sind, gibt max() 'N/A' zurück. Wenn ein "P" -Wert vorhanden ist, gibt max() das "P" zurück, da Buchstabe P einen höheren Zeichencode als N hat.

+0

Danke. Es funktioniert –

+0

Wenn die obige Antwort half, Ihr Problem zu lösen, dann markieren Sie es als akzeptiert, damit andere Zuschauer dieses Themas wissen, dass die Fragen beantwortet werden. – Shadow