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.
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
Die Bedingung ist immer erfüllt: <code><code>COUNT(DISTINCT name) = 1
</code></code>
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
Ja, sorry. Falsch gedacht. Die Fragestellung hat mich da schon verwirrt.