Zum Inhalt springen

2 Fragen zu Oracle


KonraderPils

Empfohlene Beiträge

Hallo also ich schreibe morgen eine Arbeit in Datenbanken und Ich komme bei 2 Fragen nicht zurecht ;) die da wären

3) Lassen Sie sich für alle Mitarbeiter anzeigen, wann sie zum ersten Mal am Neujahrsempfang teilgenommen haben (am 01.01. des auf die Einstellung folgenden Jahres).

Ich habs mit round versucht der rundet dann zwar auf den 01.01.XY aber das JAHR stimmt nicht bei jedem weil er bei manchen ab und bei manchen auf rundet.

4)Lassen Sie sich die Mitarbeiternummer, den Namen als Nachnamen und das Jahresgehalt (12* das Gehalt und 3* die Provision oder 500$ für alle die keine Provision erhalten können) anzeigen, gerundet auf Tausender für alle Mitarbeiter außer den Analysten.

Das wäre die zweite da habe ich sogut wie ka ;) wäre nett wenn einer die Lösung hätte. ;(

Link zu diesem Kommentar
Auf anderen Seiten teilen

...

3) Lassen Sie sich für alle Mitarbeiter anzeigen, wann sie zum ersten Mal am Neujahrsempfang teilgenommen haben (am 01.01. des auf die Einstellung folgenden Jahres).

...

Wenn ich das richtig verstanden habe, dann brauchst du Trunc und nicht Round.

Functions, 155 of 177

Bei der zweiten Aufgabe könnte dir das hier weiterhelfen:

Functions, 89 of 177

Link zu diesem Kommentar
Auf anderen Seiten teilen

3.) select '01.01.'||to_char( to_number(to_char(datumsspalte,'YYYY'))+1 ) "1. Neujahrsfeier" from tabelle;

Einfach das Einstellungsjahr mit to_char herausfilter, in einen nummerischen Wert umwandel und 1 aufaddieren. Für die Ausgabe dann wieder in einen String umwandeln und den 01.01. konkartinieren.

Lassen Sie sich die Mitarbeiternummer, den Namen als Nachnamen und das Jahresgehalt (12* das Gehalt und 3* die Provision oder 500$ für alle die keine Provision erhalten können) anzeigen, gerundet auf Tausender für alle Mitarbeiter außer den Analysten.

Hmm da wär die Tabellenstruktur nicht schlecht gewesen. Ansonsten muss ich ein bissl raten.

SELECT mitarbeiterid,

name as nachname,

CASE mitarbeitertyp WHEN 'Analyst' THEN gehalt*12 + NVL2(provision,3*provision,500)

ELSE ROUND( gehalt*12 + NVL2(provision,3*provision,500),-3) END CASE

FROM tabelle;

Den Spaltennamen Nachname vergeben (AS ist optional) und dann im CASE Block zwischen Analysten und anderen unterscheiden. Über ROUND Runden und NVL2 gibt bei NULL-Werten unterschiedliche Rückgabewerte.

Bei der Aussage: für alle Mitarbeiter außer den Analysten bin ich mir nicht sicher ob die eine andere Rundung bekommen sollten oder direkt ausgeschlossen werden müssen.

Ist letzteres der Fall, das CASE rausnehmen und statt dessen auf WHERE mitarbeitertyp <>'Analyst' abfragen.

Mehr Infos zu den verwendeten Funktionen kannst Du hier über die Suche bekommen:

Oracle Database Online Documentation 10g Release 2 (10.2)

Dim

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...