Dezember 07, 2021, 13:46:17

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Abfrage aus verschiedenen Datensätzen in Spalten nebeneinander

Begonnen von steini@d-steini.de, November 05, 2021, 12:04:29

⏪ vorheriges - nächstes ⏩

steini@d-steini.de

Liebe Community,

ich stehe vor einem Problem einer Abfrage und hoffe ihr könnt mir helfen. Folgender Datensatz liegt vor:

Patient-ID Besuch Datum Bemerkung1 Bemerkung...
1           1     01.01.20  A      ...
1           2     05.03.21  B
2           1     12.12.20  C
3           1     26.04.20  ...
3           2     30.04.20

Jeder Patient eine ID und war zum 1. Mal am DatumX, zum 2. Mal am DatumY da. Zu jedem Besuch gibt es einige Spalten mit verschiedenen Bemerkunken/Daten.

Da ganze möchte ich durch eine Abfrage oder einen anderen Weg in folgendes Format bringen:

Patient-ID Datum-Besuch1 Bemerkung1-Besuch1 Bemerkung2-Besuch1 Datum-Besuch2 Bemerkung-2 ... Datum-BesuchX

... so dass jede Patient-ID genau ein Datensatz ist und die Werte für die Besuche nebeneinander in den Spalten stehen.

Ist das vielleicht ohne SQL in der Entwurfsansicht mittels Abfrage hinzubekommen. Wenn nicht, hilft mir vielleicht auch ein SQL Code.

Vielen vielen Dank!!!

ebs17

November 05, 2021, 12:51:30 #1 Letzte Bearbeitung: November 05, 2021, 13:33:43 von ebs17
ZitatIst das vielleicht ohne SQL in der Entwurfsansicht mittels Abfrage hinzubekommen.
Wie hoch ist Dein Abstraktionsvermögen?

Wie ich das sehe, müssten Elemente aus Deiner Wunschansicht in Einzelabfragen zusammengestellt werden, und diese Einzelabfragen wären dann in einer weiteren Abfrage zusammenzufassen.

Zumindest das Zusammenkopieren von Einzelabfragen in der SQL-Ansicht würde mir deutlich leichter fallen.
Wenn man seine SQL-Anweisungen dann auch formatiert, dürfte man bezüglich Übersichtlichkeit und Verständlichkeit in der SQL-Ansicht haushoch überlegen sein.

Aber auch:
Zitatin folgendes Format bringen
Der Kunde ist König, wenn er gut zahlt, genug Zeit zur Verfügung stellt und nett ist.
Aber manchmal wählt man auch einfach pragmatische Darstellungen, und alle können trotzdem leben.  (Der Entwickler ist Kaiser.)
Mit freundlichem Glück Auf!

Eberhard

steini@d-steini.de

Mein Abstraktionsvermögen ist schon recht hoch. In der Vergangenheit habe ich auch vieles mit SQL hinbekommen (aus Foren zusammenkopiert und solange probiert bis es geht).

Problem bei meinen Daten ist, dass es bis zu 50 Besuche bei 2350 Patienten sind. Das heißt: Für jede Besuchsnummer eine Tabelle zu generieren und dann alle Tabellen gegen die Patienten ID abzufragen ist zu aufwendig.
Aus deiner Antwort sehen ich, dass es aber wahrscheinlich keine einfache Lösung gibt. Bei Access 2010 war das ganze über die Pivot Ansicht möglich. Da konnte man die ursprünglichen Werte wiedergeben lassen. Seit Office 2016 fehlt diese Funktion in Access. In Excel kann man in Pivot-Tabellen leider nur Auswertungen anzeigen lassen, nicht aber den ursprünglichen Wert.

Somit versuche ich es gern mit SQL --- aber wie?

Danke!

DF6GL

November 05, 2021, 13:42:18 #3 Letzte Bearbeitung: November 05, 2021, 13:46:59 von DF6GL
Hallo,

 50 Besuche (sprich Datensätze) mit deren Daten in eine Spalte zu übertragen.... Hältst Du das für wirklich sinnvoll und brauchbar?

Warum soll so etwas gemacht werden?

btw: Auch ab 2010 sind Kreuztabellen und Pivot-Formularansichten möglich.

Alternativ-Lösung:

Gruppiere in einer Abfrage  nach "Patient-ID"   (btw:  Sonder- und Leerzeichen sollten dringend vermieden werden) und in einer berechneten Spalte rufst Du diese (anzupassende) Funktion auf:


https://web.archive.org/web/20200224055601/http://dbwiki.net/wiki/VBA_Tipp:_Liste_per_SQL_aufbauen


ebs17

Zitat... so dass jede Patient-ID genau ein Datensatz ist und die Werte für die Besuche nebeneinander in den Spalten stehen
255 Spalten sind das Maximum an möglichen Spalten in Tabelle wie auch in Abfragen (inkl. Kreuztabelle) in Jet. Das ist Dir bewusst? "Bis zu 50 Besuche ..." heißt für mich, dass das später auch mal 250 werden können oder ...

Alleine der Übersicht wegen wäre ich weit davon entfernt, mich den technischen Grenzen annähern zu wollen.
Eine Riesentabelle in Breite wäre aber keine Übersicht, sondern würde den Tatbestand der Körperverletzung erfüllen, verarbeitungstechnisch wäre sie in Folge eine Katastrophe.
Bzgl.  SQLListe: Dies statt in Einzelspalten zusammengepappt in einer Spalte darzustellen macht es noch schlimmer.

Sinnieren vor dem Aktionieren:
Was möchte man EIGENTLICH aus einer Auswertung erfahren?
Bestimmte Personen? Bestimmte Zeiträume? Bestimmte Maßnahmen?
Mit einfachen Vorgaben eine Auf-einen-Blick-Auswertung (ohne Scrollen) bekommen?
Mit freundlichem Glück Auf!

Eberhard