Abfrage auswerten

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Thomas2705.

    Abfrage auswerten

    Ich möchte gern durch Abfrage einen bestimmten Wert ermitteln und bei Vorhandensein des Wertes im Programm fortfahren:

    Es sollte etwa so aussehen:

    SELECT Tabelle.* FROM Tabelle
    Wenn der Wert aus SpalteA = "WertA" dann weiter mit Programm...

    Ich möchte nicht die Anzahl eines bestimmten Wertes "WertA" ermitteln sondern den konkreten Wert z.B. grün, blau, gelb

    Bisher habe ich es immer so gemacht:

    VB.NET-Quellcode

    1. cmd.CommandText = String.Format("SELECT COUNT(vertrag_kfz_nr)FROM vertrag_kfz WHERE vertrag_kfz_nr =" & ds_vertrag_id)
    2. Wert1 = cmd.ExecuteScalar()
    3. If Wert1 = 0 Then
    4. ...


    Wie kann ich einen bestimmten Wert aus einer bestimmten Spalte in der angesprochenen Tabelle ermitteln und entsprechend auswerten?
    Nein das haut nicht hin.

    Folgende Abfrage:

    VB.NET-Quellcode

    1. cmd.CommandText = String.Format("SELECT ds_stamm.*,ds_vertrag.* FROM ds_stamm INNER JOIN ds_vertrag ON ds_stamm.ds_stamm_id = ds_vertrag.ds_vertrag_nr WHERE ds_stamm_id LIKE '%" & ds_vertrag_nr & "%'")


    Tabelle ds_stamm in Spalte ds_stamm_status hat unter anderem folgende Werte: Einzelunternehmen, GmbH, GbR
    Obige Abfrage findet alle Werte in Spalte "ds_stamm_status"

    Wie finde ich mit SELECT COUNT die Anzahl der Werte "Einzelunternehmen" in Spalte ds_stamm_status in Tabelle ds_stamm basierend auf obiger erster Abfrage. Ich glaube ich muß SELECT COUNT in die erste Abfrage bringen.

    Ich hoffe jemand versteht mich; etwas.
    Vielen Dank für Hilfe
    Tut mir leid, ich verstehe nicht was du möchtest...
    Im Eingangspost redest du von einem Wert, den du ermitteln willst und jetzt redest du von einer unbestimmten Anzahl von Ergebnissen einer Abfrage?
    Jetzt musst du weiter ausholen und dein Vorhaben genauer erklären...
    Folgendes Modell:

    Es gibt verschiedene Arten von Kunden: "Unternehmen" oder "private Haushalte"
    Diese Kunde sind in einer Tabelle mit der Bezeichnung "ds_stamm" gespeichert. Ihnen ist jeweils das Merkmal "Unternehmen" oder "privater Haushalt" zugeordnet. Dieses Merkmal wird in der Spalte "ds_stamm_status" abgelegt.

    Kunden mit dem Merkmal "privater Haushalt" haben andere Einzeldaten als Kunden mit dem Merkman "Unternehmen". Sie unterscheiden sich zum Beispiel Familienstand, Geburtsdatum, Jahresumsatz... Um diese verschiedenen Daten entsprechend als Fenster darstellen zu können gibt es das Fenster "win_haushalte" und das Fenster "win_unternehmen"

    Jeder Kunde hat mehrere Verträge. Verträge werden in der Tabelle "ds_vertrag" gespeichert. Für Verträge gibt es das Fenster "win_vertrag"

    Zwischen beiden Tabellen (ds_stamm ; ds_vertrag) besteht das Verhältnis 1:n bzw. ds_stamm_id : ds_vertrag_nr

    In Abhängigkeit vom Merkmal "privater Haushalt" oder "Unternehmen" soll aus der Ansicht des Fensters "win_vertrag" das Fenster "win_haushalte" oder "win_unternehmen" geöffnet werden. Wenn es sich um einen vertrag zu einem Haushalt handelt soll sich Fenster "win_haushalte" öffnen und wenn es sich um ein Unternehmen handelt soll sich "win_unternehmen" öffnen.

    Ich glaubte an folgenden Lösungsansatz mit Hilfe der ersten Abfrage.
    Wähle alle Daten der Tabellen ds_stamm und ds_vertrag. Prüfe das Merkmal ds_stamm_status ("hier unternehmen oder privater Haushalt") Wenn Merkmal Haushalt dann Fenster "win_haushalte" wenn Merkmal Unternehmen dann "win_unternehmen". Letzteren Teil wollte ich durch SELECT COUNT durchführen.

    Ich glaube die Abfrage SELECHT COUNT ... basiert auf der Abfrage SELECT ... Ich weiß nicht wie ich beide Abfragen zueinander füge.
    Sollte so heissen:
    Suche den Eintrag aus der Tabelle Stamm, der mit einem bestimmten Vertrag aus der Tabelle Vertrag verbunden ist...
    In etwa so:
    SELECT Stamm.Merkmal FROM Stamm LEFT JOIN Vertrag ON Stamm.ID = Vertrag.StammID WHERE Vertrag.ID = ?
    Schaue einmal hier: w3schools.com/sql/sql_join_left.asp