[gelöst]doppelte Einträge in einer Spalte

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

marc 70
**
Beiträge: 38
Registriert: Mo, 24.09.2012 23:00

[gelöst]doppelte Einträge in einer Spalte

Beitrag von marc 70 »

nabend,

komme alleine leider nicht weiter....

folgendes Beispiel einer Tabelle.
eins.jpg
eins.jpg (28.43 KiB) 1525 mal betrachtet

Code: Alles auswählen

SELECT "FarbeID", "Preis", "mass1", "mass2", "Farbe" 
FROM "Tabelle1" WHERE ( "mass1" > x AND "mass2" > y )

ist z.B. x=85 und y=85 dann bleiben nur 3 Zeilen übrig (1,3,6)--> alles gut so
ist z.B. x=60 und y=60 dann ist die Ausgabe wie oben (rot und blau ist doppelt) --> zeile 1 und 3 sollen aber weg
(denn die Farbe gibt es ja auch kleiner)

Die "FarbID" kann man zum vergleichen heranziehen( die ersten 5 zahlen ergeben immer die Farbe)

Code: Alles auswählen

SELECT MIN( "Preis" ), LEFT( "FarbeID", 5 ) as "FarbKey" 
FROM "Tabelle1" GROUP BY LEFT( "FarbeID", 5 )
mit Code 2 gibt es keine doppelten Farben mehr und auch die Richtgen bleiben übrig.
blos die anderen spalten sind dann weg und das mass wird auch nicht mehr berücksichtigt.
doub.jpg
doub.jpg (7.35 KiB) 1525 mal betrachtet
Wie kann man beides kombinieren?

besten Dank im voraus
Gruß marc

AOO 4.0.1
HSQL
Dateianhänge
Neue Datenbank.odb
(5.05 KiB) 98-mal heruntergeladen
Zuletzt geändert von marc 70 am Sa, 23.11.2013 13:43, insgesamt 1-mal geändert.
AOO411m6(Build:9775) unter WIN7 64bit
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: doppelte Einträge in einer Spalte

Beitrag von RobertG »

Hallo Marc,

das Ganze funktioniert natürlich nur dann, wenn Du die Variablen x und y auch in der zweite Abfrage einbaust. Dann erhältst Du übereinstimmende Werte. Du könntest jetzt die Variablen über eine gesonderte Tabelle mit einem Datensatz einlesen lassen. Dann beeinflusst Du sie in beiden Abfragen gleichzeitig und kannst die eine auch als Grundlage für die andere nutzen.

Gruß

Robert
Dateianhänge
Neue Datenbank.odb
Gewünschtes Abfrageergebnis
(4.46 KiB) 106-mal heruntergeladen
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: doppelte Einträge in einer Spalte

Beitrag von F3K Total »

Hi,
indem du der ersten Abfrage eine Spalte hinzufügst:

Code: Alles auswählen

SELECT "FarbeID", "Preis", "mass1", "mass2", "Farbe", LEFT( "FarbeID", 5 ) as "FarbKey" FROM "Tabelle1" WHERE ( "mass1" > 85 AND "mass2" > 85 )
Und dann eine dritte Abfrage schreibst, in der die beiden ersten kombiniert werden:

Code: Alles auswählen

SELECT "Abfrage".* FROM "Duplikate", "Abfrage" WHERE "Duplikate"."FarbKey" = "Abfrage"."FarbKey"
Das läßt sich durch Substitution von Duplikate in einer Abfrage zusammenfassen:

Code: Alles auswählen

SELECT 
    "Abfrage".* 
FROM 
    (SELECT 
         MIN( "Preis" ),
         LEFT( "FarbeID", 5 ) AS "FarbKey" 
    FROM
        "Tabelle1" 
     GROUP BY 
          LEFT( "FarbeID", 5 )) 
    AS "Duplikate", 
   "Abfrage" 
WHERE 
"Duplikate"."FarbKey" = "Abfrage"."FarbKey"
Gruß R
marc 70
**
Beiträge: 38
Registriert: Mo, 24.09.2012 23:00

Re: doppelte Einträge in einer Spalte

Beitrag von marc 70 »

Hallo,

danke euch beiden für die schnelle Hilfe.

geht so wunderbar. :D

Code: Alles auswählen

SELECT "Tabelle1"."FarbeID", "Tabelle1"."Preis", "Tabelle1"."mass1", "Tabelle1"."mass2", "Tabelle1"."Farbe" 
FROM ( SELECT MIN( "Preis" ) AS "MPreis", LEFT( "FarbeID", 5 ) AS "FarbKey" FROM "Tabelle1" WHERE "mass1" > 66 AND "mass2" > 66 GROUP BY LEFT( "FarbeID", 5 ) ) "Duplikate", "Tabelle1" 
WHERE "Tabelle1"."Preis" = "Duplikate"."MPreis" 
AND "Tabelle1"."mass1" > 66 
AND "Tabelle1"."mass2" > 66 
AND "Duplikate"."FarbKey" = LEFT( "Tabelle1"."FarbeID", 5 )
Gruß marc
AOO411m6(Build:9775) unter WIN7 64bit
Antworten