benötige Hilfe bei einer Artikelverwaltung

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Bow
Beiträge: 3
Registriert: Mi, 24.01.2018 09:15

benötige Hilfe bei einer Artikelverwaltung

Beitrag von Bow »

Hallo zusammen

ich habe mir eine kleine Artikelverwaltung zusammen gestellt
die folgendermaßen aufgebaut ist.
Aufbau der Tabellen
Aufbau der Tabellen
2.PNG (98.21 KiB) 5102 mal betrachtet
Beziehung der Tabellen
Beziehung der Tabellen
1.PNG (13.06 KiB) 5102 mal betrachtet

Tabelle 1
Artikel mit festen Werten die nicht verändert werden soll
Tabelle 2
Kojenvergabe (Stellplatz) - feste Werte

TAB
ist für die M N Beziehung zuständig,
bis dahin funktioniert es auch.

nun komme ich nicht mehr weiter im nächsten schritt hatte ich im TAB die ID_ WE angelegt und mit WE verknüpft um
für jeden Eintrag auf dem Stellplatz einen Wareneingangs Datum festzulegen.

der Wareneingang wird später in Monate umgelegt SQL Code ist vorhanden.
SELECT DATEDIFF ('mm', "WE"."WE", CURRENTDATE) AS "ALTER" FROM "WE"

anschließend soll ich über den VK aus der Tabelle Artikel mit dem Wareneingang (mm) abwerten.
z.B. bei einem Artikel von 999,00


0-3 Monate 0% 999,00 - 5%
3-6 Monate 5% = 999,00 - 5% = 949,05
6-11 Monate 10% = 949,05 - 10% = 854,15
11-18 Monate 30% = 854,15 - 30% = 597,90
18-36 Monate 50% = 597,90 - 50% = 298,95
> 36 Monate 100% = 298,95 -100 % = 0

wäre echt dankbar für eure Hilfe.
ich benutze die Version openoffice 4.1.5
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: benötige Hilfe bei einer Artikelverwaltung

Beitrag von RobertG »

Hallo Bow,

wozu benötigst Du die Tabelle WE? Da steht nur ein Feld drin, das Du dann über einen Fremdschlüssel mit TAB verbindest. Das Datum kann also genauso gut in TAB direkt gespeichert werden.

Der SQL-Code ist, zumindest für die interne HSQLDB, nicht ganz korrekt: CURRENT_DATE oder CURDATE(), nicht: CURRENTDATE.

Für die entsprechenden prozentualen Minderungen musst Du mit der Funktion
CASE WHEN ... THEN ... WHEN ... THEN ...ELSE ... END
arbeiten. Schau Dir dazu die Beschreibung im Handbuch an.

Code: Alles auswählen

CASE WHEN DATEDIFF ('mm', "WE"."WE", CURRENT_DATE) < 3 THEN "VK" 
WHEN DATEDIFF ('mm', "WE"."WE", CURRENT_DATE) < 6 THEN "VK" * 0.95 
WHEN ... ELSE ... END
Gruß

Robert
Bow
Beiträge: 3
Registriert: Mi, 24.01.2018 09:15

Re: benötige Hilfe bei einer Artikelverwaltung

Beitrag von Bow »

Hallo guten Abend, danke für deine Hilfe

ich dachte mir ich muss den Wareneingang ausgliedern, da bei einer Eingabe in der Tabelle Kojenvergabe
der Stellplatz selber das WE- Datum erhält und nicht der Artikel der abgelegt wurde.

Die Artikel bleiben alle gleich als Stammdaten - diese bekommen verschiedene Stellplätze und Wareneingänge Datum.
"Nachtrag" - Die Artikel können in mehrere Stellplätze erhalten.

ohh - vertippt.
das mit der Minderung schau ich mir an.

Wie würdest Du das mit dem Wareneingang Datum anlegen ?

Gruß Bow
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: benötige Hilfe bei einer Artikelverwaltung

Beitrag von RobertG »

Hallo Bow,

wenn Du natürlich mit dem gleichen Datum viele Datensätze in der Tabelle TAB vermerkst, dann ist die ausgelagerte Tabelle WE kein Problem. Grundsatz ist einfach: Häufige Wiederholungen vermeiden, aber nicht zu sehr zerfasern. Bedeutet dann bei wenigen gleichen Datumsangaben: Direkt in TAB das Datum schreiben und ID_WE entfallen lassen.

Was mir noch auffällt: Nach Deiner bisherigen Konstruktion ist die Tabelle TAB keine, die ein n:m-Verhältnis regelt. Die Einträge für ID_KO und ID_WE können genauso gut in ARTIKEL stehen. Das liegt daran, dass Du nur ID_ART in der Tabelle TAB zum Primärschlüssel gemacht hast. Der Artikel kann also in TAB nur einmal auftauchen. Das soll doch vermutlich nicht so sein. Deshalb: Mindestens zwei der Schlüsselfelder zum gemeinsamen Primärschlüssel machen.

Gruß

Robert
Bow
Beiträge: 3
Registriert: Mi, 24.01.2018 09:15

Re: benötige Hilfe bei einer Artikelverwaltung

Beitrag von Bow »

Hallo Robert,
danke nochmals für deine Hilfe, wahrscheinlich habe hatte ich beim erstellen der Bilder die falsche Datei verwendet.
mom sieht diese so aus.
TAB
TAB
Bildschirmfoto 2018-01-26 um 21.54.45.png (22.69 KiB) 5012 mal betrachtet

das berechen der Abwertung habe ich nun wie folgt eingegeben- ist das so richtig ? - oder gibt es was ich noch
besser machen kann- scheint zu funktionieren
Restwert
Restwert
Bildschirmfoto 2018-01-26 um 22.07.23.png (14.98 KiB) 5012 mal betrachtet
SQL
SQL
Bildschirmfoto 2018-01-26 um 21.53.56.png (125.45 KiB) 5012 mal betrachtet
was mich nun interessiert ist es nicht möglich die Spalte Alter stehen zu lassen ( die durch Datediff berechneten Monate )
und die als Restwert in einer neunen Spalte einzutragen.

Nun noch ein Ordentliches Formular für die Eingabe der Wareneingänge und Vergabe und Anzeige der Stellplätze scheint aber
nicht so richtig zu funktionieren wie ich mir das vorstelle

Gruß Bow
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: benötige Hilfe bei einer Artikelverwaltung

Beitrag von RobertG »

Hallo Bow,

Du kannst doch einfach noch einmal ein DATEDIFF für die Spalte "Alter" in die Abfrage einbauen. Du kannst aber nicht in einer Abfrage daraus "Alter" machen und in der gleichen Zeile diesen Alias "Alter" für die CASE - WHEN - Formulierung nutzen.

Gruß

Robert
Antworten