Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

ACCESS: vertikale daten in horizontale daten konvertieren ;)

Empfohlene Antworten

Veröffentlicht

Hi@all,

also ich versuch etz mal mein problem so zu beschreiben, damit ihr des versteht.

wir haben hier eine datenbank die zuerst auf einem alten system lief (ka welches).

in dieser datenbank geht es darum, offene stellen hier im betrieb für geistig oder körperlich behinderte Menschen auszuschreiben, d.h. es gibt bei allen arbeitsplätzen hier bestimmte, festgelegte bedingungen wie z.B langes arbeiten im stehen (also sprich Tätigkeiten die in der stelle verrichtet werden müssen). das sind insgesamt 20 verschiedene bedingungen (lacke, stehend arbeiten, nachtschicht etc...). nun wurde die datenbank, in der ca. momentan ~ 2000 datensätze vorhanden sind in access exportiert. so weit so gut. nun sollte ich die daten so aufbereiten damit man formulare und berichte ausdrucken bzw mittels des formulars daten ergänzen oder ändern kann. das ging ja ganz schnell. nun aber: die datenbanken wurden nicht in eine sondern in 2 datenbanken exportiert. in der einen sind 2000 datensätze die durch einen autowert eindeutig identifiziert werden, und in der anderen sind 20000 datensätze drinnen. ok warum ist das so. der hintergrund ist der, das die mit den 20000 datensätzen nur die fortlaufende nummer und die zutreffenden jeweiligen einschränkungen enthält.

ich mach mal ein beispiel

Tabelle1:

Spalte1------------------Spalte2-----------------------Spalte3----Spalte4-----Spalte5

(fortlaufende nr.)------(bezeichnung der stelle)---etc------------etc-----------etc

34-------------------------Türenmontage---------------xxx-----------xxx-----------xxx

so in der ersten Tabelle sieht man einmal die bezeichnung der spalten in klammern und ein beispiel (34)

so, diese stelle (34) hat auch solche anforderungen an den arbeiter

und die stehen in der tabelle2

Tabelle2:

Spalte1-------------------------------------Spalte2

(fortlaufende nummer wie oben)------zutreffende einschränkung

34--------------------------------------------01A

34--------------------------------------------02A

34--------------------------------------------07

34--------------------------------------------09

etc....

so mein problem is nun, das in der 2.ten Tabelle die daten untereinander stehen.

beispiel 34 hat sagen wir mal 4 bedingungen (siehe tabelle 2)

nun belegt dies aber 4 zeilen und ich will die daten in der form haben:

Spalte1-------------------Spalte2------------Spalte3-----------------Spalte4------------etc.....

fortlaufende nummer---01A-----------------02A----------------------07------------------09

also das die einschränkunken ned untereinander sondern nebeneinander stehen...

wie kriege ich die daten aus tabelle 2 am besten in die von mir gewünschte form???

ich weiss des is alles verwirrend, wenn etwas noch unklar is, fragt einfach

danke für jeden vorschlag

cu db:D

..also..ich hätte da schon eine Idee für einen Möglichkeit, das alles mit einem Select raus zu holen - dafür bin ich auf Arbeit berüchtigt...

Also, ich bau das mal hier als Beispiel - ich hoffe, es wird dann klar. :floet:

Der Select besteht aus einem Select auf eine Untermenge, welche durch einen Union erstellt wird und dann per Group by zusammen gefasst.

Das Ganze geht nur, wenn Du eine fixe Anzahl von Feldern hast, die Du "in die Horizontale" kriegen willst. Sieht verworren aus, will ich nicht leugnen, aber es hilft... falls es unter Access funzt, was ich nicht garantieren kann.

SELECT nummer, MAX(bed1) AS bed1, MAX(bed2) AS bed2, ... (usw)...

FROM

(

SELECT nummer, 1 AS bed1, 0 AS bed2, ... usw FROM tabelle WHERE feld='bed1'

UNION

SELECT nummer, 0 AS bed1, 1 AS bed2, ... usw FROM tabelle WHERE feld='bed2'

UNION...

)

GROUP BY nummer

Der Innere Teil, der UNION, erstellt die Untermenge, auf die selektiert wird.

Damit bekommst Du als Ergebnis etwas zurück, was (sortiert) ungefähr wir folgt aussehen dürfte:

nummer|bed1|bed2|bed3

-------------------------------------------------------------------------------------------------

34 | 1 | 0 | 0

34 | 0 | 0 | 1

38 | 0 | 0 | 1

43 | 0 | 1 | 0

43 | 0 | 0 | 1

...

...und so weiter

Wenn Du darauf dann den Äusseren Teil anwendest, müsste das Ergebnis dank Group by wie folgt lauten:

nummer|bed1|bed2|bed3

-------------------------------------------------------------------------------------------------

34 | 1 | 0 | 1

38 | 0 | 0 | 1

43 | 0 | 1 | 1

...

:mod:

(Sorry, ich bekomme es hier nicht besser formatiert. An die Board-Admins: wie wäre es denn mal mit "table"-tags?)

Ich hoffe, das ist klar genug, wenn nicht... fragen. ;)


|nummer|bed1|bed2|bed3|

-----------------------

| 34   | 1  | 0  | 0  |

| 34   | 0  | 0  | 1  |

| 38   | 0  | 0  | 1  |

| 43   | 0  | 1  | 0  |

| 43   | 0  | 0  | 1  |

Das ganze in nem Text Editor schreiben und in code Tags packen.

Gruß Jaraz

ich werd das mal versuchen,... danke für die antwort

Original geschrieben von Jaraz



|nummer|bed1|bed2|bed3|

-----------------------

| 34   | 1  | 0  | 0  |

| 34   | 0  | 0  | 1  |

| 38   | 0  | 0  | 1  |

| 43   | 0  | 1  | 0  |

| 43   | 0  | 0  | 1  |

Das ganze in nem Text Editor schreiben und in code Tags packen.

Gruß Jaraz

..bin ich zublöd für... :D ...tja, wer lesen kann, ist klar im Vorteil... :mod:

Mea Culpa!

Gruss,

der Onkel

habs mit ner kreutztabellenabfrage gelöst, trotzdem danke @ holzonkel:D

~~zu~~

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.