Hallo Armin, > > Die wirklichen Unterscheidungsmerkmale, die in beiden Tabellen zur > Auswertung herangezogen werden können, sind die Artikelnummern. > Die ID wurden bei der Übernahme aus Calc automatsch erzeugt. > Gibt es einen bestimmten Grund, warum Du MySQL wählst? Wenn Du nur in OpenOffice arbeiten solltest und keine Netzwerkfunktionalität benötigst ist die integrierte HSQLDB vermutlich die bessere Wahl - dort funktionieren Relationen usw. in der gewünschten Weise.
> > Gründe eine neue MySQL-Tabelle, indem Du die Tabelle aus Calc einfach in > > den Tabellencontainer ziehst. Du lässt Struktur und Daten in die neue > > Tabelle importieren und übernimmst als Primärschlüssel die ID 8bzw. ein > > unverwechselbares Teil, z.B. die Artikelnummer. > > Jetzt hast Du 2 Tabellen. > > O.k. ich habe jetzt eine Tabelle für 2007 und eine für 2008. > > > Starte das Abfragemodul, nimm in die Abfrage beide Tabellen auf: > > Tabelle1.Artikelnr, Tabelle1.Bezeichnung, Tabelle1.Preis (Pr2007), > > Tabelle2.Pr2008,Tabelle1.PG > > Hier meine erste Unsicherheit. > Ich verwende "Abfrage in der Entwurfsansicht erstellen", oder? Ja, Abfrage in der Entwurfsansicht. Dort die beiden Tabellen auswählen. > > > Tabelle 1 wird mit Tabelle 2mit einem left Join verbunden (kann an den > > Verbindern eingestellt werden). Dadurch werden alle Datensätze aus > > Tabelle 1 übernommen, auch die, für die in Tabelle 2 keine Werte (Artikel > > also) existieren. Probiere die Abfrage aus. Du hast jetzt eine Tabelle, > > in der lediglich die Werte fehlen, die in 2008 neu hinzugekommen sind. > > Muss ich dazu die Verbindungen (2007.Artikelnr mit 2008.Artikelnr > 2007.Bezeichnung mit 2008.Bezeichnung und 2007.Preis mit 2008.Preis ) > herstllen? Nur die Verbindung 2007.Artikelnr mit 2008.Artikelnr muss gezogen werden. Schließlich sind nur die gleich. Wenn die Artikelnummern wie oben mit dem LEFT JOIN verbunden werden, dann wird im Ergebnis alles an Artikelnummern angezeigt, was 2007 vorhanden war. > > Oder muss ich nur die 2007.Artikelnr mit 2008.Artikelnr miteinander > verküpfen? Genau das. Die Relationen kannst Du bei MySQL völlig vergessen - das funktioniert aus mir nicht ersichtlichen Gründen zur Zeit noch nicht (Kann an den Tabellentypen liegen, die über den Javaconnector ausgewählt werden, kann am Datenbankmodul von OpenOffice liegen ...) Relationen definierst Du durch Deine Abfragen und Verküpfungen innerhalb der Formulare. > > Wass mach ich mit der nun entstandenen 3. Tabelle? Du müsstest jetzt eine Abfrage haben, die Du in den Tabellencontainer gezogen hast. Hierin befinden sich alle Daten von 2007, ergänzt um den neuen Preis von 2008. Das würde ich erst einmal überprüfen. > > > Mit einer zweiten Abfrage ermittelst Du aus Tabelle 2 die Werte, die 2008 > > neu hinzugekommen sind: > > Tabelle2.Artikelnr usw... Das heißt: Im Entwurfsmodus wird eine Abfrage erstellt, bei der Du zuerst die anzuzeigenden Felder auswählst. Vielleicht ist die Auswahl aber auch gar nicht nötig, da doch sowieso alle Tabellenfelder benötigt werden. Dann musst Du im Entwurfsmodus auf den SQL-Modus umschalten (Steht SQL auf einem Button). Du erhältst die SQL-Konsole. Der Komplettext in der Konsole müsste ungefähr so sein: SELECT * FROM 2008 WHERE Artikelnr NOT IN (SELECT Artikelnr FROM 2007) Anmerkung: Bei externen Datenbanken schiebt OpenOffice immer noch den Namen der Datenbank dazu. Also vielleicht auch: SELECT * FROM Datenbank.2008 WHERE Artikelnr NOT IN (SELECT Artikelnr FROM Datenbank.2007) Abfrage testen. Die WHERE-Formulierung ist nichts anderes als die Verknüpfung, die Du bisher mit der Maus ziehst. Zum Erlernen sollstest Du ruhig bei der ersten Abfrage auch einmal den SQL-Text ansehen, der durch das Mausgeschiebe in der Entwurfsansicht produziert wird. Alle Artikelnummern von 2007 werden durchgesucht. Ist die Nummer nicht dabei, so wird der Datensatz in der neuen Abfrage aufgelistet. > > > > Mit den beiden Abfragen hast Du den größten Teil geschafft. > > Jetzt Abfrage 1 nehmen und in den Tabellencontainer ziehen: Neue Tabelle > > gründen, ID als Primärspalte gegebenenfallls hinzufügen lassen. Das hast Du ja anscheinend schon erstellt. Wobei die ID nicht notwendig wäre. Der Primärschlüssel wäre ja eigentlich die Artikelnummer. > > Abfrage 2 > > nehmen und Daten an die neu gegründete Tabelle anfügen. Die 2. Abfrage wird in den Tabellenkontainer gezogen. Es kommt eine Aufforderung, was denn mit den Daten geschehen soll. Du lässt Sie an die Ergebnisse der ersten Abfrage anhängen, nachdem Du die Felder durch die Auf- und Ab-Tasten richtig zugeordnet hast. ++++++++++++ Eine gute Konstruktionsgrundlage für eine Datenbank ist das Ganze allerdings nicht. Was machst Du im nächsten Jahr? Same Procedure ... Die folgende Konstruktion würde das umgehen: Tabelle 1: IDart Artikelnr Bezeichnung PG (Wobei ich nicht weiß, was PG bedeutet - hängt es mit dem wechselbaren Preis zusammen, gehört es in Tabelle 2) Tabelle 2: IDpr IDart Preis Datum Die Arbeit mit so einer Tabellenkonstruktion ist natürlich nur dann sinnvoll, wenn Du ein Formular baust. In dem Formular ist dann nach Eingabe der Artikel ein schön gefülltes Auswahlfeld. Du wählst den Artikel aus, es werden die vergangenen Preise angezeigt, Du schreibst den aktuellen Preis mit Datum darunter. So etwas ähnliches hatte ich als Beispiel ins Netz gesetzt: http://www.scoolonline.de/download/openoffice.html (2 Datenbanken, die kleinere "Inventur.zip" ist die, die gut zu so etwas weiterentwickelt werden kann) Gruß Robert --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]