Alias addieren

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

hdh
**
Beiträge: 26
Registriert: Do, 08.11.2018 10:55

Alias addieren

Beitrag 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
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Alias addieren

Beitrag 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
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Alias addieren

Beitrag 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
Alias.png (18.8 KiB) 6972 mal betrachtet
Lade ein Beispieldokument hoch, oder erkläre besser, was du erreichen möchtest.

Gruß R
hdh
**
Beiträge: 26
Registriert: Do, 08.11.2018 10:55

Re: Alias addieren

Beitrag 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
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Alias addieren

Beitrag von F3K Total »

... kann keine DB finden???
hdh
**
Beiträge: 26
Registriert: Do, 08.11.2018 10:55

Re: Alias addieren

Beitrag 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
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Alias addieren

Beitrag 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

Code: Alles auswählen

CHECKPOINT DEFRAG
ausgeführt über Extras/SQL... und anschliessendes komplettes Schließen von OpenOffice komprimieren kannst.
Gruß R
quotsi
******
Beiträge: 693
Registriert: Do, 14.11.2013 10:04

Re: Alias addieren

Beitrag 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"
win11 - Avira - LO 7.5.8.2 (X86_64) - AOO 4.1.14
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Alias addieren

Beitrag von F3K Total »

Hallo quotsi,
nein alles richtig, zumindest bei mir funktioniert die Abfrage:
SQL.PNG
SQL.PNG (39.63 KiB) 6926 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
Dateianhänge
AK.odb
(18.55 KiB) 158-mal heruntergeladen
hdh
**
Beiträge: 26
Registriert: Do, 08.11.2018 10:55

Re: Alias addieren

Beitrag 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
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Alias addieren

Beitrag 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
hdh
**
Beiträge: 26
Registriert: Do, 08.11.2018 10:55

Re: Alias addieren

Beitrag von hdh »

Hallo, es klappt alles wunderbar vielen herzlichen Dank für eure Hilfe.
LG Hans Dieter Hahn
quotsi
******
Beiträge: 693
Registriert: Do, 14.11.2013 10:04

Re: Alias addieren

Beitrag 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).
win11 - Avira - LO 7.5.8.2 (X86_64) - AOO 4.1.14
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
hdh
**
Beiträge: 26
Registriert: Do, 08.11.2018 10:55

Re: Alias addieren

Beitrag 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
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Alias addieren

Beitrag 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
Antworten