Seite 1 von 2

Base Abfrage erstellen für Notdienstliste

Verfasst: Sa 12. Dez 2015, 14:39
von juliane
Hallo,
ich muss eine Notdienstliste erstellen. Ich habe also eine Datenbank erzeugt, in der 2 Tabellen enthalten sind: Notdienstdaten und Ärzte. Die Tabelle Notdienstdaten enthält ca. 70 Datensätze, die Tabelle Ärzte ca. 250 Datensätze.
Ich möchte nun mittels einer Abfrage jedem Notdienst 2 zufällig ausgewählte Ärzte zuordnen. Wichtig ist dabei, dass es keine Doppelnennungen gibt. Da ich absoluter Einsteiger bin habe ich bisher über die Entwurfsansicht gearbeitet.
Vielen Dank für Hilfe

Re: Base Abfrage erstellen für Notdienstliste

Verfasst: Sa 12. Dez 2015, 18:59
von RobertG
Hallo Juliane,

Du benötigst vermutlich keine Abfrage, sondern eine Zuweisung von Ärzten zu Notdiensten in Form einer Tabelle. In einer Abfrage erhältst Du, wenn Du mit Hilfe von Zufallszahlen (Funktion RAND()) arbeitest, bei jeder neuen Abfrage unterschiedliche Zuteilungen. Das dürfte wohl nicht Dein Ziel sein.

Ich würde also zuerst einmal eine Tabelle erstellen, die aus zwei gemeinsamen Schlüsselfeldern besteht:
Notdienst_ID und Arzt_ID
Damit kannst Du einem Notdienst mehrere Ärzte zuweisen. Du kannst natürlich auch eine Zufallszahl den Ärzten zuordnen und dann damit die Zuweisung beeinflussen. Auf jeden Fall solltest Du aber die Zuweisung irgendwo abspeichern.

Gruß

Robert

Re: Base Abfrage erstellen für Notdienstliste

Verfasst: Sa 12. Dez 2015, 20:00
von F3K Total
Hallo,
habe da mal was gebaut... wollte wissen ob ich es hinbekomme, und es ist gelungen, unter Verwendung der von Robert angesprochenen Elemente.
Tabelle zur Zuweisung, Funktion RAND() im Listenfeld zur zufälligen Auswahl eines Arztes aus den verbleibenden.
juliane hat geschrieben: Da ich absoluter Einsteiger bin ...
... kannst Du versuchen die Vorgehensweise anhand des angehängten Beispieles zu verstehen, alles zu erklären sprengt meine Geduld.

Re: Base Abfrage erstellen für Notdienstliste

Verfasst: Sa 12. Dez 2015, 22:59
von juliane
Vielen Dank für die schnelle und umfassende Hilfe.
Das bringt mich deutlich voran.

Re: Base Abfrage erstellen für Notdienstliste

Verfasst: Sa 12. Dez 2015, 23:05
von gogo
Samstagabend, da bastelt man gerne ein bisschen ;)

Muss sagen, dass es mich wirklich überrascht dass die HSQLDB KEIN Update von 2 Tabellen simultan zulässt - das ist wirklich ein riesen Manko, ansonsten würde der Code unten

Code: Alles auswählen

update "Aerzte" set "RndNr" = RAND();
update "Aerzte" set "Gruppe" = 1;
update "Aerzte" set "Gruppe" = 2 where MOD("ID_Aerzte",2) = 0;

DELETE FROM "TempTable";
ALTER TABLE "TempTable" ALTER COLUMN "ID" RESTART WITH 0;
insert into "TempTable" ("ID","Arzt") select NULL, "ID_Aerzte" from "Aerzte" where "Gruppe" = 1 order by "RndNr";

Insert into "Dienste" ("ID","Arzt1","Arzt2") select "ID","Arzt", -99 from "TempTable" order by "ID" LIMIT 3;

DELETE FROM "TempTable";
ALTER TABLE "TempTable" ALTER COLUMN "ID" RESTART WITH 0;
INSERT INTO "TempTable" ("ID","Arzt") select NULL, "ID_Aerzte" from "Aerzte" where "Gruppe" = 2 order by "RndNr";

Update "Dienste", "TempTable" set "Dienste"."Arzt2"="TempTable"."Arzt" where "Dienste"."Arzt2"=-99 AND "Dienste"."ID"="TempTable"."ID";
3 neue Dienste anlegen...

Ich hab' mir erlaubt F3K's Datei um eine Makro-Version aufzupeppen ...

Re: Base Abfrage erstellen für Notdienstliste

Verfasst: Mo 14. Dez 2015, 21:30
von michaauskiel
Hallo,

ich habe das gleiche Problem.ABER: bei mir haben die zwei "Ärzte" noch eine Telefonnummer, eine Post- und eine E-Mail-Adresse.

Leider bekomme ich Telefonnummer, eine Post- und eine E-Mail-Adresse weder bei gogo noch bei F3K hinzugefügt :-( Könnt ihr mir vielleicht verraten, wie ich das hinbekommen könnte???

Re: Base Abfrage erstellen für Notdienstliste

Verfasst: Di 15. Dez 2015, 01:05
von gogo
Ich kenne eine Menge Ärzte, und alle haben sie mindestens eine Telefonnummer, eine Adresse und viele auch eine e-mail - irgendwie kriegt man das schon hin :roll:

z.B. indem man in der Tabelle "AERZTE" noch 3 Felder anfügt - am besten "Text" und dort entsprechendes reinschreibt.

Für die Anzeige muss dann noch eine Abfrage gebastelt werden (siehe unten), oder man verwendet das Dienste-Formular, lässt sich aber in den Listenfeldern mit den Arztnamen auch Adresse, Telefon anzeigen...

Code: Alles auswählen

SELECT "Dienste"."Dienstname", "Dienste"."Datum", 
     "AERZTE_1"."Name", "AERZTE_1"."Tel" , 
     "AERZTE_2"."Name", "AERZTE_2"."Tel"
FROM 
     { OJ "Dienste" LEFT OUTER JOIN "AERZTE" "AERZTE_1" ON "Dienste"."Arzt2" = "AERZTE_1"."ID" 
             LEFT OUTER JOIN "AERZTE" "AERZTE_2" ON "Dienste"."Arzt1" = "AERZTE_2"."ID" } 
WHERE "Dienste"."Datum" BETWEEN :StartDatum AND :EndDatum

Re: Base Abfrage erstellen für Notdienstliste

Verfasst: Di 15. Dez 2015, 19:50
von michaauskiel
Mensch, super, danke "gogo". Ich habe das ganze WE dran gebastelt und es nicht hinbekommen. Jetzt läuft es, dank Deiner Hilfe.
Eine letzte Frage hätte ich noch: Wie kann ich jetzt einzelne Bereiche (z.B. "Notdienste alphabetisch geordnet") ausdrucken?

Re: Base Abfrage erstellen für Notdienstliste

Verfasst: Di 15. Dez 2015, 20:32
von RobertG
Hallo michaauskiel,

der Druck geht über die Erstellung eines Berichtes. Sind nicht alle notwendigen Felder bereits in einer Tabelle enthalten, so musst Du eine Abfrage erstellen, um die Felder gemeinsam darstellen zu können.
Startest Du die Erstellung des Berichtes, so gibt es dort zuerst die Möglichkeit, diese Abfrage als Datenquelle auszuwählen. Dann wählst Du als Sortierung den Begriff aus, nach dem Du sortieren möchtest.

Bei der Erstellung von Berichten immer wieder den Bericht und auch Base sichern. Es kommt öfter vor, dass der ReportBuilder beim Abspeichern Probleme macht ...

Gruß

Robert

Re: Base Abfrage erstellen für Notdienstliste

Verfasst: Di 15. Dez 2015, 21:09
von michaauskiel
Super,

vielen Dank für die schnelle AW.

micha