Priorität festlegen?

Gudy

Erfahrenes Mitglied
Hi, also ich ahbe eine MYSQL datenbank
id,A,B,C

1 | 0 | 100 | wert1
2 | 0 | 200 | wert2
3 | 0 | 300 | wert3
4 | 0 | 400 | wert4
5 | 0 | 500 | wert5
6 | 0 | 600 | wert6
7 | 0 | 700 | wert7
8 | 0 | 800 | wert8
9 | 0 | 900 | wert9
10 | 4 | 100 | divwert1
11 | 4 | 500 | divwert5
12 | 4 | 700 | divwert7
13 | 4 | 900 | divwert9

Ich möchte als ergebniss meiner Abfrage jetzt 9 werte zurückbekommen, denn in Reihe B soll wenn ein Wert doppelt vorkommt dieser nicht angeteigt werden.
Aber wichtig ist das die dann angezeigt werden wo in Spalte A dann z.B 4 steht!

Ich hoffe man kann verstehn was ich will?
Ist das überhaupt möglich so ein abfrage zu schreiben?

danke
 
Besser ist es wenn du 2 Sql Abfragen machst

select * from dbtab where a != 4 group by b

select * from dbtab where a = 4
 
grummel

das ist nur leider keine antwort auf meine Frage :(
vieleicht habe ich mich nicht genau genug ausgedrückt?

aber wenn ich es so mache wie du es sagst, dann habe ich sie doch wieder doppelt drin

cu
 
@ melmager
lass mich nach denken ahhhhhhhhhhhm NEIN NEIN NEIN :)


bei der ersten Abfrage "select * from dbtab where a != 4 group by b"

werden alle aus der Datenbank geholt die a !=4 sind, also sind das alle wo a = 0 ist, also schon 9 Datensätze und es kommen alle Zahlen von 100 bis 900 in reihe b vor.

und jetzt kommt noch die 2 Abfrage dazu, was noch mal 4 Ergebnisse sind und dann haben wir in reihe b ja doch wieder doppelte!

cu
 
@melmager

ja ich glaub wir reden an einender Vorbei

das Ergebniss soll so aussehen

10 | 4 | 100 | divwert1
2 | 0 | 200 | wert2
3 | 0 | 300 | wert3
4 | 0 | 400 | wert4
11 | 4 | 500 | divwert5
6 | 0 | 600 | wert6
12 | 4 | 700 | divwert7
8 | 0 | 800 | wert8
13 | 4 | 900 | divwert9

am besten auch in der Reihenfolge....
:)
 
aha
Ich verstehe das jetzt so: Jeder B Wert soll nur einmal auftauchen und
wenn bei gleichen B Wert eine 4 im A wert ist, soll die bevorzugt werden.
Und das ganze sortiert nach B Wert

select *,max(a) from dbtabelle group by b order by b

voraussetzung ist das a wert maximal den wert 4 haben wird
 
Zuletzt bearbeitet:
jo aber wenn nun die Datenbank in der Zukunft so aussieht

1 | 0 | 100 | wert1
2 | 0 | 200 | wert2
3 | 0 | 300 | wert3
4 | 0 | 400 | wert4
5 | 0 | 500 | wert5
6 | 0 | 600 | wert6
7 | 0 | 700 | wert7
8 | 0 | 800 | wert8
9 | 0 | 900 | wert9
10 | 4 | 100 | divwert1
11 | 4 | 500 | divwert5
12 | 4 | 700 | divwert7
13 | 4 | 900 | divwert9´
14 | 5 | 400 | divwert4
15 | 5 | 700 | divwert7
16 | 5 | 900 | divwert9
17 | 6 | 100 | divwert1
18 | 6 | 400 | divwert4
19 | 6 | 600 | divwert6

und die ausgabe die selbe bleiben soll das doch wieder nicht :(
 

Neue Beiträge

Zurück