Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Wer mag bei Abfrage helfen MSSQL2000

Empfohlene Antworten

Veröffentlicht

hallo forum,

ich bräuchte hilfe bei einer abfrage. ich möchte von einer spalte einen wert gezählt zurückbekommen (anzahl) und den wert selber.

folgende geschichte: spalte ist gefüllt mit so etwas:

JKL8736/rhjkw64rjjn/kd938ruu7h

JKL8736/ghnw64urhh/k5kgfs3837h

JKL8736/0rijkkw64uj5j/kd4uurdr37h

IIO8733/ihrtuuw64ujww/kd93837h

IIO8733/0hhtw64ujerh/ghnw64urhh

IIO8733/kd93837h/kd93i87h

AIO8736/ghnw64urhh/ghnw64urhh

AIO8736/0OOhtw64ujerh/kd93i87h

wobei eigentlich nur der erste wert interessiert (bis zum ersten schrägstrich). ich möchte wissen wie oft der erste wert jeweils in der spalte vorkommt.

als rückgabewert quasi die anzahl und der wert.

ANZAHL --- WERT

3 --- JKL8736

3 --- IIO8733

2 --- AIO8736

wer kann mir helfen bei dieser sache?

JKL8736/rhjkw64rjjn/kd938ruu7h

JKL8736/ghnw64urhh/k5kgfs3837h

JKL8736/0rijkkw64uj5j/kd4uurdr37h

IIO8733/ihrtuuw64ujww/kd93837h

IIO8733/0hhtw64ujerh/ghnw64urhh

IIO8733/kd93837h/kd93i87h

AIO8736/ghnw64urhh/ghnw64urhh

AIO8736/0OOhtw64ujerh/kd93i87h

...

ANZAHL --- WERT

3 --- JKL8736

3 --- IIO8733

2 --- AIO8736

Ich unterstelle mal, dass der Wert immer gleich lang ist wie in deinem Beispiel. Dann versuch es mal so: (ungetestet)

select left(spaltenname, 7) as WERT, count(*) as ANZAHL

from tabellenname

group by left(spaltenname, 7)

order by count(*) desc, left(spaltenname, 7) desc

hth

Reinhold

hallo Reinhold,

:)

vielen dank für deine schnelle antwort.

leider sind die ersten werte nicht gleich lang.

Dann arbeite mit Stringfunktionen:

Such nach einer Funktion die das nte Vorkommen eines Zeichens/Strings in einem String sucht (geh einfach mal die Liste der Stringfunktionen durch)

Bestimme die erste Position eines '/'

schneide mit substr(1,<Position>-1) den gewünschten Teil aus

der Rest ist eine normale Aggregation

Dann so:

select left(spaltenname

, case when (CHARINDEX ('/', spaltenname ) -1 ) > 0 then

(CHARINDEX ('/', spaltenname ) -1 )

else

0

end )) as WERT, count(*) as ANZAHL

from tabellenname

group by left(spaltenname

, case when (CHARINDEX ('/', spaltenname ) -1 ) > 0 then

(CHARINDEX ('/', spaltenname ) -1 )

else

0

end ))

order by count(*) desc, left(spaltenname

, case when (CHARINDEX ('/', spaltenname ) -1 ) > 0 then

(CHARINDEX ('/', spaltenname ) -1 )

else

0

end )) desc

Auch das wie immer ungetestet und mit heisser Nadel. Falls die Tabelle viele Zeilen hat, solltest du das aber besser über Nacht laufen lassen.

Reinhold

vielen lieben dank euch beiden, ich probiere alles einmal aus.

schönes wochenende und vielen dank!

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.