2016-04-18 11 views
-2

Sie haben zwei Tabellen "Mitglieder" und "Richtlinien". Wenn Sie gebeten werden, einen Bericht für die Anzahl der Mitglieder zwischen den Altersgruppen 12-20, 21-30, 31-40 und über 41 Jahren zu erstellen, die im Dezember 2014 eine Versicherung abgeschlossen haben.select sql query von zwei Tabellen

Nehmen Sie alle Felder an Sie brauchen, sind in den Tabellen; Wie kann ich die SQL-Anweisung (en) vorbereiten, um diese Aufgabe zu erfüllen? Die Tabellenfelder sind unten (nicht unbedingt der richtige Name) gezeigt

Die Mitglieder Tabelle diese Felder Geburtstag hat (DATE), Vorname, Nachname Die Richtlinien Tabelle hat diese Felder policy_start_date (DATE), policy_amount (dezimal), policy_claim_status (TINYINT), policy_description (VARCHAR 160)

+0

Welche RDBMS verwenden Sie? – Madhivanan

+0

MySQL ist das RDBMS. Ich bin ziemlich neu in SQL, entschuldige mich, wenn die Frage zu rudimentär erscheint. – Chouchou

+0

Fügen Sie Tabellendefinitionen, Beispieltabellendaten und das erwartete Ergebnis hinzu! – jarlh

Antwort

0

Können Sie klären, ob Sie "vorbereiten" wie in vorbereiteter Aussage meinen oder fragen Sie, wie die Syntax aussehen würde?

Sie können das Problem in eine Anzahl von Unterabfragen wie

  • Top-Level-Bericht zu brechen, die unter den Abfragen verbinden.
  • Extrahieren Sie Details des Mitglieds wie ihr Geburtsdatum in eine Altersgruppe.
  • Filterrichtlinien, die in Ihrem Zeitraum erstellt wurden.
0

Dies Sie einen Start geben

select 
sum(case when datediff(current_date(),birthDate)/365 between 12 and 20 then 1 else 0 end) as `age_12to20`, 
sum(case when datediff(current_date(),birthDate)/365 between 21 and 30 then 1 else 0 end) as `age_21to30`, 
sum(case when datediff(current_date(),birthDate)/365 between 31 and 40 then 1 else 0 end) as `age_31to40`, 
sum(case when datediff(current_date(),birthDate)/365 >40 then 1 else 0 end) as `age_over40` 
from members as m inner join policies as p 
on m.member_id=p.member_id 
where policy_start_date>='2014-12-01' and policy_start_date<'2015-01-01' 
+0

Vielen Dank. Ihre Antwort hat mir tatsächlich geholfen, den Bericht vorzubereiten, den ich brauchte. Danke für die anderen, die auch auf meine Herausforderung reagiert haben. – Chouchou