• 26.08.2025, 16:12
  • Register
  • Login
  • You are not logged in.

 

cuto8

Full Member

SQL View

Tuesday, December 28th 2010, 8:56am

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

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

MySQL queries

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 queries

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

Tuesday, December 28th 2010, 9:19am

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

This post has been edited 1 times, last edit by "Y0Gi" (Dec 28th 2010, 9:21am)

cuto8

Full Member

Tuesday, December 28th 2010, 9:28am

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:

Source code

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


Nachtrag: Das scheint wirklich nicht zu klappen :(

This post has been edited 2 times, last edit by "cuto8" (Dec 28th 2010, 9:41am)

seaslug

Senior Member

Tuesday, December 28th 2010, 2:42pm

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

Friday, December 31st 2010, 1:04am

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

MySQL queries

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*

Similar threads