Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

es geht um folgende Aufgabe:

Es sollen alle Zeilen mit einem Spaltenwert von "d_std > 2000 aus der Tabelle CAR in die Tabelle CABC kopiert werden.

Die Tabelle CABC enthält die Spalten "herst", "typ", "ser_nr" und "wartungsdatum" mit denselben entsprechenden Datentypen wie die Tabelle CAR.

Es soll zum Kopieren eine Unterabfrage verwendet werden.

Die Klausel zum Einfügen einer Zeile in die Tabelle CABC soll die Spaltenliste "herst", "typ" und "ser_nr" enthalten.

Die Tabelle CAR besitzt folgende Spalten:

"herst", "typ", "ser_nr", "d_std" und "an_datum".

Für Lösungsvorschläge wäre ich sehr dankbar.

Vielen Dank im Voraus.

Geschrieben

in diesem fall ist from und where sicher angebracht, aber ein select funktioniert auch ohne daher wird das eigentlich immer als INSERT INTO ... SELECT bezeichnet

*klug******* ^^

*mitmach* :P

Geschrieben

wie funktioniert ein select ohne from :eek

ist doch immer

insert into bla

(

select b_id from blubb

where b_id > 10

);

beispielsweiße oder ?

Geschrieben

_n4p_ hat schon recht. "Umgansprachlich bezeichnet man das als INSERT INTO ... SELECT. das wirst Du immer wieder so finden.

Das FROM schenkt man sich einfach, da es nur um die Befehle an sich geht. Gleiches gilt z.B. für CTAS (Create Table As Select) das nennt sich auch nicht CTASF.

Dim

Geschrieben
wie funktioniert ein select ohne from :eek

SELECT 1+1;

nein ist in verbindung mit dem insert nicht sinnvoll, aber das hat ja keiner behauptet ^^

Geschrieben

Hallo MartinSt,

deine Fragen sind berechtigt und die Informationen zu meiner Anfrage waren auch nicht vollständig.

Daher noch folgender Sachverhalt:

- Die Tabelle CABC muss neu angelegt werden.

- Innerhalb der CREATE TABLE-Anweisung soll eine Unterabfrage erfolgen, in der die

Datensätze "d_std > 2000" aus der Tabelle CAR in die neue Tabelle CABC kopiert

werden.

- Die neue Tabelle CABC soll die Spalten "herst", "typ", "ser_nr" enthalten,

die auch die Tabelle CAR enthält.

- Problem: Zusätzlich soll das Attribut "wartungsdatum" in die neue Tabelle

aufgenommen werden (Datentyp DATE), das keine Daten enthalten soll.

Dieses Attribut existiert so nicht in der Tabelle CAR, dafür besitzt diese Tabelle das

Attribut "an_datum", mit Daten zum Anschaffungsdatum (Datentyp DATE).

Quelltabelle:

CAR mit den Attributen "herst", "typ", "ser_nr", "d_std", "an_datum" gefüllt mit Werten.

Zieltabelle:

CABC mit den Attributen "herst", "typ", "ser_nr" gefüllt mit entsprechenden Werten, "wartungsdatum" bleibt leer.

Daher waren meine Überlegungen bis jetzt folgende:

create table CABC

as select herst, typ, ser_nr

from CAR

where d_std > 2000;

Die Anweisung funktioniert so weit.

Wie erhalte ich aber das Attribut "wartungsdatum" ohne Datensätze aus der Tabelle CAR in die neue Tabelle CABC?

Es könnte ein JOIN zur Lösung führen, da müsste ich aber im Moment noch passen.

Geschrieben

wenn ich dich recht verstanden habe gibt es keine daten die du in wartungsdatum übernehmen kannst/willst

in dem Fall kannst du auch an der stelle einen einfachen ausdruck mit in das select aufnehmen. zb SELECT DATE('') AS 'wartungsdatum' und dann den rest so wie du es schon hast. nachteil wäre hier nur das dann standardmäßig überall der 1.1.1970 das wartungsdatum ist, weil die 0 halt auch als datum interpretiert wird.

getestet unter MySQL 5.x, in MSSQL müsste es auch so/ähnlich funktionieren, oracle keine ahnung vermutlich aber schon.

Geschrieben

Es geht um das Erstellen des Attributs "wartungsdatum", das leer bleiben soll, für die neue Tabelle CABC innerhalb der oben beschriebenen Anweisung.

Geschrieben

Ich habe das Problem gelöst.

Mit CAST (NULL AS DATE) komme ich zu dem Ergebnis, das ich brauche.

Vielen Dank für die Lösungsvorschläge.

Geschrieben

Man muss ja auch nicht jeden Blödsinn mitmachen :D dafür gibts die dual Table.

In oracle geht folgendes:

select geniale_function from dual
oder
select * from table(ganz_tolle_pipelined_function)

Dim

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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