Zum Inhalt springen

SQL Aktualisierungsabfrage


chablife

Empfohlene Beiträge

Hey,

ich habe folgendes Problem.

Und zwar habe ich 2 Tabellen. In der einen ist die Spalte "Vertragsbeginn" vorhanden und in der anderen Tabelle die Spalte "Monat".

Und jetzt habe ich die Aufgabe von meinem Chef bekommen, Das der "Monat" je nachdem auf was für einem Datum der "Vertragsbeginn" ist, sich automatisch ändert.

Das heißt wenn in "Vertragsbeginn" der Wert '04.01.2011' steht muss im "Monat" 'Jan' stehen.

Und so gehts dann immer weiter.

Seit einer Stunde versuche ich alles mögliche und habe auch im Internet gesucht aber es hat nichts funktioniert bis jetzt. :(

Geht das mit UPDATE?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

wenn die Tabellenspalte richtig deklariert ist hängt es wohl eher von deinen Ausgabeeinstellungen ab. Wenn also die Spalte ein Datum ist, kann man die Ausgabe bei Oracle z.B. mit den entsprechendenen Umgebungsvariablen anpassen. Welche Datenbank nutzt du denn? Und welchen Typ hat die Spalte?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

wenn die Tabellenspalte richtig deklariert ist hängt es wohl eher von deinen Ausgabeeinstellungen ab. Wenn also die Spalte ein Datum ist, kann man die Ausgabe bei Oracle z.B. mit den entsprechendenen Umgebungsvariablen anpassen. Welche Datenbank nutzt du denn? Und welchen Typ hat die Spalte?

Ich nutze das Aufgaben Center von der Sage Office Line.

"Vertragsbeginn" hat den Typ Datum und "Monat" den Typ Text.

Beide sind halt in unterschiedlichen Tabellen. Habe verschiedene WHEN und IF abfragen probiert aber klappen tut es nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

da mir dieses Programm(-paket) nichts sagt, kann ich dir nicht sagen, wie du es ganz einfach machen könntest

da die Datenbankstruktur scheinbar schon so gegeben war, könntest du dich bei deinem Chef erkundigen, warum in der Datenbank redundante Daten liegen (ich jedenfalls würde mich deswegen erkundigen)

immerhein scheint es mir so, als solle ab sofort der Monat immer genau das gleiche enthalten, wie (teilweise) bereits mit dem Datum gespeichert wurde

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe die Dame am Empfang gefragt wofür das gut sein soll. Sie hat gemeint damit sie gezielt filtern kann.

Z.B. Nur Januar anzeigen oder nur April anzeigen.

Und damit sie das alles nicht manuell einfügen muss, hat mein Chef gesagt das ich eine Aktualisierungsabfrage machen soll, die die Spalte "Monat" automatisch mit dem jeweiligen Wert füllt.

Er hat gemeint du musst eine Wenn .. Dann Abfrage machen.

WENN Datum = so und so DANN Monat = so und so.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Im Normalfall hat jede Datenbank / Programmiersprache Datumsfunktionen z.b.


if (date("month", tabelfield) == 02)

alternativ geht es auch andersherum

if (between(tablefield, 02-01-2003, 02-28-2003))

entweder extrahiert man den Monat aus dem Tabellenfeld und prüft darauf, oder man prüft auf einen Datumsbereich, d.h. vom ersten Tag des Monats bis zum letzten Tag. Die konkrete Umsetzung ist von dem System abhängig. Grundsätzlich gilt, dass man keine Redundanzen innerhalb der Datenbank speichert, das führt sehr schnell zu Inkonsistenz des Datenstamms.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich das richtig verstanden habe müsstet du es so machen:

WENN tabelle1.Datum = "01.01.2011" DANN tabelle2.Monat = "Jan"

Jetzt musst du nur noch schauen, wie du aus dem Datum nur den Monat erhälst, bei MySQL zum Beispiel wäre das zum Beispiel MONTH().

Ich hoffe ich konnte dir vll. etwas helfen.

Edit: Sorry, mein Vorposter scheint ja fast das gleich erklärt zu haben! Nur besser! ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

man sollte, wie bereits geschrieben, Redundanzen vermeiden

mir scheint es, als würde die Frau, mit der du gesprochen hast, direkt auf die Datenbank (bzw. auf direkt auf den Datenbestand) zugreifen

eigentlich müsste man für soetwas Oberflächen erstellen, mit deren Hilfe man auf die Datenbank zugreifen kann

diese könnten dann eine solche Anzeige (/Filterung) liefern

allerdings ist es auch sinnvoll, die Kosten dafür mit dem Nutzen abzuwägen (wodurch man sich evtl. auch dagegen entscheiden kann)

zur Lösung:

erkundige dich am Besten, welche Datumsfunktionen dir deine Umgebung bietet und schau dir deren Dokumentation an

anhand derer kannst du dann entscheiden, welche du verwenden kannst

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sorry kann erst jetzt antworten.

Ja, bevor die Datenbank öffnet erscheint ein Fenster wo man die Monate auswählen kann die man sehen möchte. Nach der Auswahl öffent sich die Datenbank.

Habe mit meinem Chef geredet er hat gemeint das er gar nicht erwartet habe das ich das kann und das ich einen der Mitarbeiter fragen soll um das zulösen.

Also ist eigentlich soweit alles geklärt, trotzdem danke euch für die Tipps.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sorry kann erst jetzt antworten.

Ja, bevor die Datenbank öffnet erscheint ein Fenster wo man die Monate auswählen kann die man sehen möchte. Nach der Auswahl öffent sich die Datenbank.

Habe mit meinem Chef geredet er hat gemeint das er gar nicht erwartet habe das ich das kann und das ich einen der Mitarbeiter fragen soll um das zulösen.

Also ist eigentlich soweit alles geklärt, trotzdem danke euch für die Tipps.

Nur falls es jemanden interessiert, der Befehl ging so:

UPDATE M

SET M.Monat = 'Jan'

FROM Tabelle1 M INNER JOIN Tabelle2 W ON M.ID = W.ID

WHERE Month(W.Vertragsbeginn) = 1 AND M.Monat IS NULL

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...