• 26.08.2025, 17:19
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

cuto8

Full Member

SQL View

Dienstag, 28. Dezember 2010, 08:56

Moin! Ich wünsche die Feiertage gut überstanden zu haben!

Folgende (MS-) SQL-Abfrage ist als View definiert:

MySQL-Abfrage(n)

1
SELECT [SUBSELECT1] AS "Feld 1", [SUBSELECT2] AS "Feld 2" FROM [TAB1]


Ich hätte jetzt gerne noch eine dritte Spalte, in der ich die Summe von "Feld 1" und "Feld 2" ausgebe. Leider funktioniert

MySQL-Abfrage(n)

1
SELECT [SUBSELECT1] AS "Feld 1", [SUBSELECT2] AS "Feld 2", "Feld 1" + "Feld 2" AS "Feld 3" FROM [TAB1]


nicht und ich würde nur sehr gerne die doch recht umfangreichen Subselects nochmal ausführen. Wie rechne ich in MSSQL mit berechneten Feldern?

Y0Gi

God

Dienstag, 28. Dezember 2010, 09:19

Hast du mal versucht, Aliase zu benutzen, die nicht maskiert werden müssen? `"foo" + "bar"` ist halt noch 'n anderer Schnack als `foo + bar`. Ansonsten mal gucken, ob's für solche Fälle eine separate Funktion zum Addieren/Summieren gibt.

Update: Vielleicht musst du die Addition auch klammern, damit er weiß, was alles zum Wert gehört, den er aliasen soll.

In jedem Fall wäre aber etwas handfesteres als "funktioniert nicht" wünschenswert, z.B. eine Fehlermeldung ;) (Jaja, ich weiß, nicht immer sind die von SQL-Parsern zu gebrauchen.)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Y0Gi« (28. Dezember 2010, 09:21)

cuto8

Full Member

Dienstag, 28. Dezember 2010, 09:28

Die Aliase werden in der "richtigen" Abfrage nicht maskiert - da schimpfen sie sich OEM und Packet... Es scheint aber ein Ding der Unmöglichkeit zu sein, mit Aliasen mehr zu machen, als sie stumpf anzuzeigen...

Fehlermeldung:

Quellcode

1
2
Meldung 207, Ebene 16, Status 1, Prozedur blabla, Zeile 29
Ungültiger Spaltenname 'Packet'.


Nachtrag: Das scheint wirklich nicht zu klappen :(

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »cuto8« (28. Dezember 2010, 09:41)

seaslug

Senior Member

Dienstag, 28. Dezember 2010, 14:42

hi,

genau. die aliase nützen dir hier michts. es müßte in etwa so aussehen:

SELECT [SUBSELECT1] AS "Feld 1", [SUBSELECT2] AS "Feld 2", [SUBSELECT1] + [SUBSELECT2] AS "Feld 3" FROM [TAB1]

gruß,
seaslug

DrStrange

Senior Member

Freitag, 31. Dezember 2010, 01:04

Mit Oracle würde ich es so lösen:

MySQL-Abfrage(n)

1
SELECT x."Feld 1" + x."Feld 2" AS "Feld 3" FROM ( SELECT [SUBSELECT1] AS "Feld 1", [SUBSELECT2] AS "Feld 2" FROM [TAB1] ) x


Das sollte mit MySQL genauso gehen, hier sind dann die Aliase Pflicht, ggf. auch für die inliegenden Subselects.
When you come across a big kettle of crazy, it's best not to stir it.

Muhahahahahaha, pwned du kacknoob!
*gockel gockel boaarrcck*

Ähnliche Themen