🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Base Abfrage erstellen für Notdienstliste

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
juliane
Beiträge: 4
Registriert: So 15. Nov 2015, 09:56

Base Abfrage erstellen für Notdienstliste

Beitrag von juliane » Sa 12. Dez 2015, 14:39

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

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Base Abfrage erstellen für Notdienstliste

Beitrag von RobertG » Sa 12. Dez 2015, 18:59

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
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Base Abfrage erstellen für Notdienstliste

Beitrag von F3K Total » Sa 12. Dez 2015, 20:00

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.
Dateianhänge
Notdienste.zip
nur entpacken
(23.38 KiB) 138-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

juliane
Beiträge: 4
Registriert: So 15. Nov 2015, 09:56

Re: Base Abfrage erstellen für Notdienstliste

Beitrag von juliane » Sa 12. Dez 2015, 22:59

Vielen Dank für die schnelle und umfassende Hilfe.
Das bringt mich deutlich voran.

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Base Abfrage erstellen für Notdienstliste

Beitrag von gogo » Sa 12. Dez 2015, 23:05

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 ...
Dateianhänge
Notdienste_mit_Makros.zip
(35.19 KiB) 118-mal heruntergeladen
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

michaauskiel
Beiträge: 5
Registriert: So 8. Nov 2015, 20:16

Re: Base Abfrage erstellen für Notdienstliste

Beitrag von michaauskiel » Mo 14. Dez 2015, 21:30

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???

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Base Abfrage erstellen für Notdienstliste

Beitrag von gogo » Di 15. Dez 2015, 01:05

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
Dateianhänge
Notdienste_erweitert.zip
(42.29 KiB) 114-mal heruntergeladen
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

michaauskiel
Beiträge: 5
Registriert: So 8. Nov 2015, 20:16

Re: Base Abfrage erstellen für Notdienstliste

Beitrag von michaauskiel » Di 15. Dez 2015, 19:50

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?

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Base Abfrage erstellen für Notdienstliste

Beitrag von RobertG » Di 15. Dez 2015, 20:32

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
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

michaauskiel
Beiträge: 5
Registriert: So 8. Nov 2015, 20:16

Re: Base Abfrage erstellen für Notdienstliste

Beitrag von michaauskiel » Di 15. Dez 2015, 21:09

Super,

vielen Dank für die schnelle AW.

micha


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten