Alias addieren

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

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

Alias addieren

Beitrag von hdh » Mi, 14.11.2018 13:50

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: 1734
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Alias addieren

Beitrag von RobertG » Mi, 14.11.2018 17:05

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: 3270
Registriert: Mo, 28.02.2011 17:49

Re: Alias addieren

Beitrag von F3K Total » Mi, 14.11.2018 17:07

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) 1050 mal betrachtet
Lade ein Beispieldokument hoch, oder erkläre besser, was du erreichen möchtest.

Gruß R

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

Re: Alias addieren

Beitrag von hdh » Mi, 14.11.2018 17:38

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: 3270
Registriert: Mo, 28.02.2011 17:49

Re: Alias addieren

Beitrag von F3K Total » Mi, 14.11.2018 17:41

... kann keine DB finden???

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

Re: Alias addieren

Beitrag von hdh » Mi, 14.11.2018 17:51

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: 3270
Registriert: Mo, 28.02.2011 17:49

Re: Alias addieren

Beitrag von F3K Total » Mi, 14.11.2018 18:08

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: 266
Registriert: Do, 14.11.2013 10:04

Re: Alias addieren

Beitrag von quotsi » Mi, 14.11.2018 18:11

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"
win7prof - Avira - LO 6.1.3.2 (x64) - AOO 4.1.5

F3K Total
********
Beiträge: 3270
Registriert: Mo, 28.02.2011 17:49

Re: Alias addieren

Beitrag von F3K Total » Mi, 14.11.2018 18:40

Hallo quotsi,
nein alles richtig, zumindest bei mir funktioniert die Abfrage:
SQL.PNG
SQL.PNG (39.63 KiB) 1004 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) 14-mal heruntergeladen

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

Re: Alias addieren

Beitrag von hdh » Mi, 14.11.2018 19:31

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: 1734
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Alias addieren

Beitrag von RobertG » Mi, 14.11.2018 19:39

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: 17
Registriert: Do, 08.11.2018 10:55

Re: Alias addieren

Beitrag von hdh » Mi, 14.11.2018 20:00

Hallo, es klappt alles wunderbar vielen herzlichen Dank für eure Hilfe.
LG Hans Dieter Hahn

quotsi
*****
Beiträge: 266
Registriert: Do, 14.11.2013 10:04

Re: Alias addieren

Beitrag von quotsi » Do, 15.11.2018 11:15

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).
win7prof - Avira - LO 6.1.3.2 (x64) - AOO 4.1.5

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

Re: Alias addieren

Beitrag von hdh » Do, 15.11.2018 11:54

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: 3270
Registriert: Mo, 28.02.2011 17:49

Re: Alias addieren

Beitrag von F3K Total » Do, 15.11.2018 13:24

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