• 27.08.2025, 17:21
  • S’inscrire
  • Connexion
  • Vous n’êtes pas connecté.

 

cuto8

Full Member

SQL View

mardi 28 décembre 2010, 08:56

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

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

Requêtes MySQL

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

Requêtes MySQL

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

mardi 28 décembre 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.)

Ce message a été modifié 1 fois. Dernière modification effectuée par "Y0Gi" (28 décembre 2010, 09:21)

cuto8

Full Member

mardi 28 décembre 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:

Code source

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


Nachtrag: Das scheint wirklich nicht zu klappen :(

Ce message a été modifié 2 fois. Dernière modification effectuée par "cuto8" (28 décembre 2010, 09:41)

seaslug

Senior Member

mardi 28 décembre 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

vendredi 31 décembre 2010, 01:04

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

Requêtes MySQL

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*

Discussions similaires