PDA

View Full Version : sql abfrage



woodstock99
01-11-19, 15:17
Hallo,

ich steh mit grad selber im Weg .



ich möchte per SQL nur die Zeilen zurück bekommen bei dem eine Spalte nur einen gewissen Wert aufweisst .



Inhalt Feld A Inhalt Feld B

12345 A
12345 B
98767 B
98767 B


Sprich ich möchte jetzt nur den Satz 98767 zurückbekommen . Feld B weisst ja immer den gleichen Wert auf.

andreaspr@aon.at
01-11-19, 16:19
Hi,

gibt dafür wie immer viele Lösungen, hier also mal einer der mir auf die Schnelle einfällt:


with x as (select id, max(name) name_max, min(name) name_min from table (values (12345, 'A'), (12345, 'B'), (98767, 'B'), (98767, 'B')) t1 (id, name)
group by id)
select id, name_max as name from x
where name_max = name_min

lg Andreas

woodstock99
04-11-19, 13:10
Hi Super danke :) . Falls dir aber noch ne andere Lösung einfällt wäre ich Dir dankbar. VG

andreaspr@aon.at
04-11-19, 17:05
Es gibt duzende Lösungen, du kannst theoretisch auch anfangen zu programmieren, dann in RPG, Java, PHP, Node.js.
Wenn du genau sagen könntest was du willst könnte ich dir vielleicht mehr helfen.

Ahoy
07-11-19, 05:38
Hi,

so würde es auch gehen:



SELECT
id, MAX(name)
FROM
TABLE(VALUES(12345, 'A'), (12345, 'B'), (98767, 'B'), (98767, 'B')) t(id, name)
GROUP BY
id
HAVING
COUNT(DISTINCT name) = 1

Fuerchau
07-11-19, 08:28
Die Bedingung ist immer erfüllt: <code><code>COUNT(DISTINCT name) = 1
</code></code>

Ahoy
07-11-19, 09:42
Sicher?


SELECT
id, COUNT(DISTINCT name) AS cnt
FROM
TABLE(VALUES(12345, 'A'), (12345, 'B'), (98767, 'B'), (98767, 'B')) t(id, name)
GROUP BY
id

Ergibt bei mir:
ID CNT
12345 2
98767 1

Fuerchau
07-11-19, 11:58
Ja, sorry. Falsch gedacht. Die Fragestellung hat mich da schon verwirrt.