Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Wie Prüfschleife bauen?

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von IchHH, 28 Juni 2018.

  1. IchHH

    IchHH Datenbank-Guru

    Hallo,

    ich habe heute folgendes Problem.

    Ich möchte gerne prüfen ob in Spalte A ein Wert doppelt vorhanden ist und möchte dann mir nur die Datensätze anzeigen lassen die bei Gleicher Wert in der A Spalte einen Unterschied in der B Spalte aufweisen.

    Ich hatte erst den Ansatz verfolgt mit einen Abgleich, wie hier:
    Code:
    Having #tmp.[IB] <> COUNT([Nachname])
    Die Fehlermeldung dann war aber
    Fehler beim Konvertieren des varchar-Werts 'DI02' in den int-Datentyp.

    Vielleicht habt ihr einen Ansatz für mich.

    Danke.
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Du hast:

    Code:
    test=*# select * from ich_hh ;
     a | b
    ---+---
     1 | 1
     1 | 2
     2 | 2
     3 | 3
     3 | 3
    (5 Zeilen)
    
    test=*#
    
    Wert in a dopplet und gleichzeitig unterschiedliche Werte in b:

    Code:
    test=*# select a,b from ich_hh where a in (select a from ich_hh group by a having count(*) > 1) group by a,b having count(*) = 1;
     a | b
    ---+---
     1 | 1
     1 | 2
    (2 Zeilen)
    
    test=*#
    
    PostgreSQL, aber eigentlich alles Standard-SQL. Sollte also portabel sein.
     
    Walter gefällt das.
  3. IchHH

    IchHH Datenbank-Guru

    Interessant der Code und auch verständlich, klappt nur leider nicht.

    Ich habe zwischenzeitlich eine Lösung gefunden, die aber leider sub optimal weil ich nicht in der Lage bin noch zusätzliche Zeilen anzeigen zu lassen ausser die Spalte a + b.

    Mein Code zur Einschränkung sieht aber wie folgt aus:

    Code:
    Select a,b
    from #tmp
    Group by a,6
    Having Count(Concat(a,b))=1
    Wie aber bekomme ich nun zusätzliche Spalten angezeigt die aber keine Auswirkung auf die Filterung haben soll?
     
  4. akretschmer

    akretschmer Datenbank-Guru

    select * from the_table where (a,b) in (insert your quere here)
     
  5. ukulele

    ukulele Datenbank-Guru

    WHERE (a,b) IN () geht leider in MSSQL nicht aber ist das überhaupt MSSQL?
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Was passiert denn genau? Kann es nicht ausgeführt werden (Syntaxfehler), oder stimmt das Resultat nicht?
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden