Seite 1 von 3
Alias addieren
Verfasst: Mi, 14.11.2018 13:50
von hdh
Hallo zusammen,
ich habe drei Abfragen mit dem Alias s1,s2,s3 diese drei Werte möchten ich gerne addieren in einen vierten Alias gsp, habe schon alles versucht meiner Meinung nach, ich kriege es einfach nicht geregelt. Wäre für einen Hinweis dankbar.
LG Hans Dieter
Re: Alias addieren
Verfasst: Mi, 14.11.2018 17:05
von RobertG
Hallo Hans-Dieter,
Da Du den Code dazu nicht nennst hier nur ein allgemeiner Hinweis:
Bei einer Abfrage kannst Du Feldern einen Alias zuordnen. Dieser Alias ist aber nicht für die anderen Felder der Abfrage auslesbar. Der Alias kann erst für Anweisungen genutzt werden, die nach der Bezeichnung der Felder, also dem FROM kommt.
Poste doch einfach einmal etwas Code ...
Gruß
Robert
Re: Alias addieren
Verfasst: Mi, 14.11.2018 17:07
von F3K Total
Hallo,
ich verstehe die Frage nicht. Was meinst du mit "Alias addieren"?
In einer Abfrage von einer Tabelle ist der Alias der Name den du für eine Spalte der Abfrage vergibst, also etwa:
Code: Alles auswählen
SELECT "NACHNAME", "VORNAME", "NACHNAME"||', '||"VORNAME" AS "NAME" FROM "Adressen"
Hier ist der Spaltenname der aus
NACHNAME, VORNAME zusammengesetzten Spalte eben
NAME, der Alias für die zusammengesetzte Spalte.
Sieht dann so aus:
- Alias.png (18.8 KiB) 7543 mal betrachtet
Lade ein Beispieldokument hoch, oder erkläre besser, was du erreichen möchtest.
Gruß R
Re: Alias addieren
Verfasst: Mi, 14.11.2018 17:38
von hdh
Hallo, danke für das schnelle reagieren.
ich habe die ganze DB angehängt. finden Abfragen EZP1 bis EZP3 möchte ich die Aliase addieren zum Gesamtpreis. Ich hoffe das ist möglich.
FGN.odb
Re: Alias addieren
Verfasst: Mi, 14.11.2018 17:41
von F3K Total
... kann keine DB finden???
Re: Alias addieren
Verfasst: Mi, 14.11.2018 17:51
von hdh
Hallo,
das ist der code
SELECT "Auftrag"."M1", "Auftrag"."EZP1", "Auftrag"."M2", "Auftrag"."EZP2", "Auftrag"."M3", "Auftrag"."EZP3", "M1" * "EZP1" + "M2" * "EZP2" + "M3" * "EZP3" AS "gsp" FROM "Auftrag", "Kunden Adressen" WHERE "Auftrag"."FSK" = "Kunden Adressen"."ID1"
ich hoffe es kann mir jemand helfen. danke
LG Hans Dieter Hahn
Re: Alias addieren
Verfasst: Mi, 14.11.2018 18:08
von F3K Total
Moin,
der Code ist richtig, kann es sein, dass deine Tabellenspalten keine Zahlen enthalten, dass du sie z.B. als VARCHAR definiert hast?
Mit Text kann man nicht rechnen. Lade die DB doch hoch, wenn sie zu groß ist, kannst du probieren, ob du sie mit folgendem Befehl
ausgeführt über Extras/SQL... und
anschliessendes komplettes Schließen von OpenOffice komprimieren kannst.
Gruß R
Re: Alias addieren
Verfasst: Mi, 14.11.2018 18:11
von quotsi
1. Bei der eingebauten DB laß das as fort. Einfach das Alias in Anführungszeichen, dann wieder das Komma.
2. Nimm nicht das Alias beim Rechnen, sondern den kompletten Feldnamen wie zuvor
3. Müßte der Code nicht heißen (mit AS, wenns erforderlich ist):
SELECT "Auftrag"."M1", "Auftrag"."EZP1", "Auftrag"."M2", "Auftrag"."EZP2", "Auftrag"."M3", "Auftrag"."EZP3", ("Auftrag"."M1" + "Auftrag"."M2" + "Auftrag"."M3" AS "gsp") FROM "Auftrag", "Kunden Adressen" WHERE "Auftrag"."FSK" = "Kunden Adressen"."ID1"
Re: Alias addieren
Verfasst: Mi, 14.11.2018 18:40
von F3K Total
Hallo quotsi,
nein alles richtig, zumindest bei mir funktioniert die Abfrage:
- SQL.PNG (39.63 KiB) 7497 mal betrachtet
... wenn die Spalten M1 bis EZP3 als ZAHLEN definiert sind. Ich habe für M...
INTEGER und EZP...
DECIMAL(10,2) gewählt
Gruß R
Re: Alias addieren
Verfasst: Mi, 14.11.2018 19:31
von hdh
hallo, bei mir funktioniert es auch aber sobald ich m1*EZP1+M2*EZP2 addieren will während m3 und ezp3 leer bleiben gibt es kein Ergebnis mehr.
zunächst mal danke für die schnelle Hilfe, welches Kriterium brauche ich für keine eingabe?
LG Hans Dieter Hahn
Re: Alias addieren
Verfasst: Mi, 14.11.2018 19:39
von RobertG
Hallo Hans-Dieter,
Code: Alles auswählen
SELECT "Auftrag"."M1", "Auftrag"."EZP1", "Auftrag"."M2", "Auftrag"."EZP2", "Auftrag"."M3", "Auftrag"."EZP3",
IFNULL("M1" * "EZP1",0) + IFNULL("M2" * "EZP2",0) + IFNULL("M3" * "EZP3",0) AS "gsp"
FROM "Auftrag", "Kunden Adressen" WHERE "Auftrag"."FSK" = "Kunden Adressen"."ID1"
Wenn eins der Ergebnisse leer ist, also NULL, dann ist das Gesamtergebnis auch NULL. Deshalb bei NULL stattdessen die Zahl '0' einsetzen. Wenn Du mit LO und Firebird arbeitest: IFNULL ist dort unbekannt, stattdessen COALESCE verwenden. Sytax ist gleich.
Gruß
Robert
Re: Alias addieren
Verfasst: Mi, 14.11.2018 20:00
von hdh
Hallo, es klappt alles wunderbar vielen herzlichen Dank für eure Hilfe.
LG Hans Dieter Hahn
Re: Alias addieren
Verfasst: Do, 15.11.2018 11:15
von quotsi
Noch mal ich:
Dass du math. Produkte addieren wolltest und keine einfachen Spalten, hatte ich überlesen.
ABER der direkte Aufruf der Aliasse zum Rechnen in derselben Konstruktion geht mit der eingebauten HSQLDB nicht. Da muss man (nach meiner Überprüfung) noch die Spaltennamen selber aufrufen bevor man dann dem Resultat ein Alias zuweisen kann (so wie in meinem vorigen Vorschlag).
Re: Alias addieren
Verfasst: Do, 15.11.2018 11:54
von hdh
hallo,
danke nochmal aber ich muß mir halt etwas anderes überlegen. Geht es eigentlich daß eine Abfrage nur einmal durchlaufen wird?
ich bekomme immer sehr grosse Tabellen bei einer einzigen Aufruf.
LG Hans Dieter Hahn
Re: Alias addieren
Verfasst: Do, 15.11.2018 13:24
von F3K Total
Moin,
was meinst du mit einmal durchlaufen?
Möchtest du nur einen Teil der Daten anzeigen, z.B. nur die Aufträge zu einer Kundennummer?
Da gibt es viele Möglichkeiten...du musst nur genauer beschreiben, was du erreichen möchtest, und, wie schon geschrieben, am Besten ein Beispieldokument hochladen.
Gruß R