Fortlaufende Serienummer für unterschiedliche Typen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Fortlaufende Serienummer für unterschiedliche Typen

von Gixxer » Do, 07.06.2007 17:13

Hallo, bin heut leider erst wieder dazu gekommen mit der Aufgabe weiterzumachen. Gibt allerdings noch keinen neuen Stand. Vielleicht schaffe ich morgen mehr. Trotzdem schon mal vielen Dank für eure Hilfe.

Gruß Gixxer

von berndkli » Mo, 04.06.2007 20:03

Hallo Barlee

Danke, funktioniert.


Gruss Bernd

von Barlee » Mo, 04.06.2007 19:50

Hallo Bernd,

wichtig bei einer UNION ist, dass Du gleiche Spaltenbezeichner hast. Haben Deine Ausgangstabellen unterschiedliche Bezeichnungen, dann musst Du wieder mit Aliasen arbeiten.

Mit Deinen Beispieltabellen sollte folgendes funktionieren

Code: Alles auswählen

select ID_11 as ID, Geraet_11 as Geraet
from Typ_11
UNION
select ID_22 as ID, Geraet_22 as Geraet
from Typ_22
Wichtig: In Base die Option "SQL direkt ausführen" wählen.

Gruß Barlee

von berndkli » Mo, 04.06.2007 19:28

Hallo Barlee

ich habe das mal mit 2 Tabellen probiert, bekomme aber den UNION nicht hin.
Tabelle1: Typ_11 mit den Spalten ID_11 und Geraet_11;
Tabelle2: Typ_22 mit den Spalten ID_22 und Geraet_22

Wie lautet die Abfragesyntax (für die Baseinterne HSQL) wenn ich mir alles anzeigen lassen will?

@Gixxer
Wenn du dich für 2 Tabellen entscheidest kannst du auf die CONCAT Funktion verzichten. Lass die ID bei 1100001 bzw. 2200001 beginnen. Das reicht dann z.B. für jeweils 99999 Geräte.

Danke und Gruss Bernd

von Barlee » Mo, 04.06.2007 16:58

Hallo Gixxer
Zwei Tabellen wären kein Problem, nur wäre eine fortlaufende Nummerirung für beide Typen sehr schön, d.h. 111001, 111002... und 221001, 221002...
Wenn zwei einzelne Tabellen für Dich kein Problem sind, dann ist die fortlaufende Nummerierung für beide Typen auf jeden Fall möglich!!!!
Wie, das haben wir bereits geschrieben. Falls Du Probleme beim Zusammenfügen beider Tabellen per Abfrage mittels UNION haben solltest - einfach nochmal melden.

Viel Erfolg!
Gruß Barlee

von Gixxer » Mo, 04.06.2007 12:10

Erst mal vielen Dank, werd mal versuchen Eure Tipps umzusetzen.
Zwei Tabellen wären kein Problem, nur wäre eine fortlaufende Nummerirung für beide Typen sehr schön, d.h. 111001, 111002... und 221001, 221002...
Aber trotzdem schonmal vielen Dank.
Gruß Gixxer

von berndkli » Sa, 02.06.2007 11:47

Hallo Barlee

Den Kompromiss in der Durchnumerierung habe ich auch gesehen. Da aber Seriennummern im allgemeinen ja immer etwas kryptisches sind und eigentlich nur zur eindeutigen Identifizierung dienen habe ich diesen Aspekt mal hinten angestellt.
Das mit den 2 Tabellen ging mir auch durch den Kopf, bin aber nicht auf die Abfragemöglichkeit per UNION gekommen - da braucht's dann schon den Spezialisten ;-).

Gruss Bernd

von Barlee » Sa, 02.06.2007 10:26

Hallo Bernd,

Dein Vorschlag ist gut. Ich hatte auch schon daran gedacht, die ID mit dem Typen über "concat" zu verbinden. Ist sicherlich eine gute Möglichkeit. Andererseits geht man damit aber auch einen Kompromiß in der Durchnummerierung ein.

Beispiel:

ID Typ
1001 11
1002 12
1003 11

Für das zweite Gerät vom Typ 11 wäre nach 111001 die nächstmögliche Seriennummer 111002. Jedoch wird die 1002 vom Gerätetyp 12 beansprucht und steht für Typ 11 nicht mehr zur Verfügung.
Wenn ich Gixxer richtig verstanden habe, sucht er aber für die einzelnen Gerätetypen die jeweils nächstmögliche Seriennummer; also 111001,111002 ... 121001, 121002

@Gixxer: Kämen vielleicht auch zwei separate Tabellen in Frage? Dann könntest Du in jeder Tabelle so verfahren wie von Bernd beschrieben, d.h. die ID und die Kennung verbinden.
Über eine UNION-(Abfrage) kannst Du letzten Endes beide einzelne Tabellen als Summe in einer großen Ergebnistabelle anzeigen lassen. In dieser hättest Du dann eine vom Gerätetyp abhängige Durchnummerierung.

Gruß Barlee

von berndkli » Sa, 02.06.2007 00:00

Hallo Gixxer

Du könntest mit einer Concat Funktion die Typzahl - 11 bzw.22- mit der ID Nummer der Primärschlüsselspalte kombinieren.
Deine Geräte Tabelle müsste dann die Spalten "ID" (Primäschlüssel), "Typ" und "Gerätebezeichnung" enthalten. Die ID Spalte lässt du mit 1001 beginnen, das hat den Effekt von 3 führenden Nullen. Wenn du dann bei "Typ" 22 eingibst, würde sich die Nummer 221001 generieren, das zweite Gerät hätte z.B. die Nummer 111002 usw. Da sich die Concat Funktion nicht in der Tabelle selbst realisieren lässt muss man den Umweg über eine Abfrage bzw. Tabellenansicht gehen.
In die Tabellenansicht (ich nenn sie mal "Concat") übernimmst du die ID Spalte aus der Geräte Tabelle, in die nächste Spalte schreibst du bei "Feld"

Code: Alles auswählen

CONCAT("Typ","ID")
.
Erstelle ein Formulardokument mit einem Hauptformular das mit einem Tabellenkontrollfeld den Inhalt der Geräte Tabelle darstellt und mit einem Subformular, an das du ein Textfeld bindest das die CONCAT Spalte der "Concat" Tabellenansicht darstellt. Über die jeweiligen ID Spalten verknüpfst du die beiden Formulare.
Um dann alle Geräte mit den Seriennummern in einer Tabelle zu sehen, must du noch eine entsprechende Abfrage erstellen.

Das war jetzt mal ein grober Umriss, wenn noch was unklar ist, frag noch mal nach bzw. gib mir per PM deine Email adresse dann schick ich dir meine Test Datei.

Gruss Bernd

Fortlaufende Serienummer für unterschiedliche Typen

von Gixxer » Fr, 01.06.2007 15:18

Hallo, bin erst neu hier und hab in der Suche leider nix passendes gefunden. Ich habe folgendes Problem: Möchte eine DB anlegen mit Informationen zu Geräten. Habe zwei Typen von Geräten, denen fortlaufende Nummern zugeordnet werden sollen. Dabei ist die eine Nummer vom Format 11xxx und die Nummer für den anderen Typ 22xxx. Nun möchte ich im Formular zur Datenerfassung nur den Typ angeben und dann soll für diesen Eintrag die entsprechende nächste "freie" Seriennummer zugeordnet werden. Soweit steht die Formularoberfläche und der Rest der DB, aber die automatische Nummernvergabe fehlt halt noch. Hoffe ihr könnt mir helfen, da die manuelle Eingabe der Seriennummer nicht das gelbe vom Ei ist. Schon im voraus vielen Dank.
Gruß Gixxer

Nach oben