SQL Selektionen erstellen

Mehr
28 Apr 2023 07:45 - 06 Feb 2024 08:47 #7551 von Boeker
SQL Selektionen erstellen wurde erstellt von Boeker
SQL ist eine genormte Abfragesprache von relationalen Daten, wie z. B. MS-SQL, welche von SPG-Verein 4 genutzt wird. In manchen Fällen lassen sich nicht alle Abfragewünsche mit der grafischen Oberfläche realisieren. Daher gibt es in SPG-Verein 4 auch die Möglichkeit, diese Befehle direkt einzugeben. Das Ergebnis ist dann immer eine bestimmte Menge an Mitgliedsnummern (MitgliedID), die überall im Programm als Selektion genutzt werden kann. Das Ergebnis wird immer aktuell neu aufgebaut, ist also auch dynamisch und nicht statisch. Im Internet findet man diverse Quellen zum Erlernen dieser SQL-Syntax. Zum Beispiel hier

Neue SQL-Selektion erstellen:
 

SQL Befehl eingeben und mit Vorschau testen:
 

Diese Selektion kann dann an vielen Stellen im Programm genutzt werden:
 

Für die SQL-Befehle ist es wichtig, die Original-Feldnamen der Tabellen zu kennen. Hier die wichtigsten Felder der Tabelle tbl_Mitglied:
    [MitgliedID] [nvarchar](10)
    [Vorname] [nvarchar](35)
    [Nachname] [nvarchar](35)
    [Strasse] [nvarchar](35)
    [PLZ] [nvarchar](5)
    [Ort] [nvarchar](35) 
    [Land] [nchar](3) 
    [Bezirk] [nvarchar](3) 
    [Verteiler] [nvarchar](10) 
    [Geburtsdatum] [datetime2](7) 
    [Geschlecht] [nvarchar](1) 
    [Berufsgruppe] [nvarchar](3) 
    [Sonstige] [nvarchar](25) 
    [Eintritt_Datum] [datetime2](7) 
    [Eintritt_Brief] [bit] 
    [Austritt_Datum] [datetime2](7) 
    [Austritt_Brief] [bit] 
    [Kuendigung] [datetime2](7) 
    [Kuendigung_Grund] [nvarchar](1) 
    [Zahlart] [nvarchar](1) 
    [Konto_Nr] [nvarchar](10) 
    [Bankleitzahl] [nvarchar]() 
    [Zahler] [nvarchar](35) 
    [DTA_1] [nvarchar](35) 
    [DTA_2] [nvarchar](35) 
    [Erhebung_ab] [datetime2](7) 
    [Ermaessigung_bis] [datetime2](7) 
    [Einmalbetrag_1] [decimal](8 2) 
    [Einmalbetrag_2] [decimal](8 2) 
    [Zusatzbetrag] [decimal](8 2) 
    [Sonstiges_1] [nvarchar](30) 
    [Sonstiges_2] [nvarchar](30) 
    [Datum_1] [datetime2](7) 
    [Datum_2] [datetime2](7) 
    [Anzahl_Ausweise] [int] 
    [Anzahl_Zeitschriften] [int] 
    [Spende] [decimal](8 2) 
    [Vortrag_Vorjahr] [decimal](8 2) 
    [Sollstaendige_Betraege] [decimal](8 2) 
    [Gezahlte_Betraege] [decimal](8 2) 
    [Sollstellung] [datetime2](7) 
    [Zahlung] [datetime2](7) 
    [Aenderung] [datetime2](7) 
    [Mahnung] [int] 
     [nvarchar](50) 
    [BIC_Nr] [nvarchar](11) 
    [IBAN_Nr] [nvarchar](34) 
    [Benutzerfeld_01] [nvarchar](40) 
    [Benutzerfeld_02] [nvarchar](40) 
    [Benutzerfeld_03] [nvarchar](40) 
    [Benutzerfeld_04] [nvarchar](40) 
    [Benutzerfeld_05] [nvarchar](40) 
    [Benutzerfeld_06] [nvarchar](40) 
    [Benutzerfeld_07] [nvarchar](40) 
    [Benutzerfeld_08] [nvarchar](40) 
    [Benutzerfeld_09] [nvarchar](40) 
    [Benutzerfeld_10] [nvarchar](40) 
    [Notiz] [nvarchar](800) 
    [Sepa_Datum_Mandats_Ref] [datetime2](7) 
    [Sepa_kz_ausfuehrung] [nvarchar](1) 
    [Sepa_Mandats_Ref] [nvarchar](35) 
    [Nationalitaet] [nchar](3) 
    [LetzteAktualisierung] [datetime2](7) 
    [Kontosaldo] [decimal](18 2) 
    [Extern] [bit] 
    [Bemerkungen] [nvarchar](max) 

Beispiele

Alle Mitglieder, die in den nächsten 30 Tagen Geburtstag haben:
SELECT MitgliedId FROM tbl_Mitglied
WHERE DATEADD(YEAR, DATEDIFF(YEAR, Geburtsdatum, GETDATE()), Geburtsdatum)  BETWEEN GETDATE() AND DATEADD(DAY, 30, GETDATE())

Alle Mitglieder, die in den nächsten 30 Tagen Geburtstag haben, aber noch nicht ausgetreten sind:
SELECT MitgliedId FROM tbl_Mitglied
WHERE DATEADD(YEAR, DATEDIFF(YEAR, Geburtsdatum, GETDATE()), Geburtsdatum)  BETWEEN GETDATE() AND DATEADD(DAY, 30, GETDATE())
AND (Austritt_Datum IS NULL OR Austritt_Datum>GETDATE())

Alle Mitglieder, die dieses Jahr bestimmte Geburtstage haben:
SELECT MitgliedID FROM tbl_Mitglied WHERE YEAR(GETDATE())-YEAR(Geburtsdatum) IN(25, 40, 50, 60, 70, 75, 80, 85, 90, 95, 100)

Alle Mitglieder, die dieses Jahr den 25,30,40,50 Hochzeitstag (falls dieser im Datum_1 gepflegt wurde) haben:
SELECT MitgliedID FROM tbl_Mitglied
WHERE YEAR(GETDATE()) -YEAR(Datum_1) IN(25,30,40,50)

In diesem Beispiel speichern wir das Hochzeitsdatum in dem Feld "Datum 1"
Das Ergebnis können Sie dann z.B. über die Mitgliederliste Schmalschrift ("Mitglieder" > "Mitgliederlisten" > "Liste(4) - Schmalschrift") ausgeben lassen:
 

 

Alle Mitglieder, die mit Beiträgen und Spenden mindestens 250.-€ gezahlt haben:
SELECT MitgliedID FROM tbl_Mitglied WHERE gezahlte_Betraege+Spende>250
 

 
Anhänge:
Letzte Änderung: 06 Feb 2024 08:47 von Boeker.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.345 Sekunden