DB Abfrage

Alles, was den Programmierer beschäftigt

Moderator: SYNERPY

Antworten
Fanja
Beiträge: 20
Registriert: Mo Jun 30, 2008 12:57 pm

DB Abfrage

Beitrag von Fanja »

Hi,
ich habe im Hauptmenü einen neuen Menüpunkt erstellt unter dem nun eine neue Maske aufgerufen werden soll. In der Maske möchte ich einzelne Daten anzeigen lassen:

3 Lieferanten Namen
3 Kundennamen

Maschinen mit
aktuellen Wert (afa)

Leider fehlen mir die nötigen Infos zu den Tabellen, in den die Datensätze abgelegt sind.

Ist das auch mit AvERPdesigner umzusetzen oder mit IBExpert?
Gruß
UliS
Beiträge: 399
Registriert: Fr Mai 26, 2006 3:44 pm
Wohnort: Velbert-Langenberg

Alle Achtung!

Beitrag von UliS »

Hallo Fanja,

Alle Achtung, bei Betrachtung Deiner letzte Anfrage - das geht ja ganz zügig voran und anhand des Beispiel-Tabelle BAVERP ist ja auch klar, dass Du die Programmier-Doku vorliegen hast und dort die nötigen Informationen findest.

Zum Thema: wie finde ich die passende View. Nicht so einfach bei mehr als 800 Views in AvERP2008.
Ich persönlich navigiere über averp.exe und das Menu bis ich die Daten gefunden habe.

F1-Hilfe Maskenname zeigt FRM<Viewname>
Beispiel Kundenstamm
Tabelle BKUNDE
View V_BKUNDE
Formular FRMV_BKUNDE

zusätzlichen Informationen liefert
F1-Hilfe Queryinfo
wenn gerade IB-Expert nicht zur Verfügung steht um Tabellen- und View-Defintion und Inhalt anzuzeigen.

Ganz in die Tiefe
geht AvERP-Hauptmenü/Hilfe/SQL-Monitor
aber Achtung möglichst nur Enabled und SQL anhaken
und häufig clear benutzen oder auf Datei ausgeben und die Datei dann mit komfortablem Editor durchsuchen, sonst wird man von der Fülle erschlagen.

Wenn nun alle die Tabellen für alle benötigten Daten gefunden sind, im IB-Expert
SQL-EDITOR ein SELECT zusammenstellen, das die benötigten Daten richtig verknüpft. Wenn mit dem Ergebnis zufrieden, kann die View, die Basis für die neue Maske ist creiert werden und dann sind wir schon soweit
alles analog des Schulungsbeispiels BAVERP umzusetzen.

Gruss
und nochmal Chapeau

UliS
Fanja
Beiträge: 20
Registriert: Mo Jun 30, 2008 12:57 pm

Beitrag von Fanja »

Hi Uli,
vielen Dank für die Antwort. Ich weiß dass AvERP kein Finanzbuchaltung beinhaltet, somit suche ich mich halb tot nach Abschreibungsmöglichkeiten für meine Machinen.
Ich beschäftige mit AvERP aufgrund meines Studiums. Daher auch diese Aufgabenstellung.
Lege ich meine Maschine als Werkzeug an, kann ich Anschaffungskosten hinterlegen, die die Basis für AfA bilden.
Damit hört es dann aber auch auf. Mehr gibt AvERP nicht her. Oder hab ich was übersehen? Gibts schon fertige AfA Scripte, die man einbinden kann?
Gruß F
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

Es gibt doch Tabellen für Afa?! Einfach im Direktaufruf unten im Hauptmenü BAFA eingeben.
Fanja
Beiträge: 20
Registriert: Mo Jun 30, 2008 12:57 pm

Beitrag von Fanja »

PERFEKT

Dann mach ich mich mal gleich an die Umsetzung

Gruß F
Fanja
Beiträge: 20
Registriert: Mo Jun 30, 2008 12:57 pm

Beitrag von Fanja »

So ich habe mal eine kurze Abfrage getestet, die leider mit einer Fehlermeldung quittiert wurde:

Code: Alles auswählen

/*******************************************************************************
The next statement causes the following error: 

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 3, char 1.
MASKENKEY.
*******************************************************************************/
create view V_DRITTE (
ID
MASKENKEY
MASCHINE1
AS
SELECT
A.ID
A.MASKENKEY
A.BEZ
from FRMV_BWERKZ
where ID = 1
LEFT OUTER JOIN MASCHINE1 A on A.BEZ = B.ID
;
end
set term;;
Wieso jetzt der Maskenkey, hab ich beim anlegen der Tabelle DRITTE was vergessen?
Gruß F
Geri12
Beiträge: 589
Registriert: Mi Apr 16, 2008 7:51 am

Beitrag von Geri12 »

Hallo Fanja,
ich denke mal die Kommas hinter den Feldnamen :wink:

Gruß
Geri12
Fanja
Beiträge: 20
Registriert: Mo Jun 30, 2008 12:57 pm

Beitrag von Fanja »

Lol
die einfachsten Grundregeln wieder vergessen...... Nie wieder Alkohol....
Nun aber :

Code: Alles auswählen

/*******************************************************************************
The next statement causes the following error: 

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 5, char 1.
as.
*******************************************************************************/
create view V_DRITTE (
ID,
MASKENKEY,
MASCHINE1,
as
SELECT
A.ID,
A.MASKENKEY,
A.BEZ,
from FRMV_BWERKZ
where ID = 1
LEFT OUTER JOIN MASCHINE1 A on A.BEZ = B.ID
;
end
set term;;
Sorry für die vielen Fragen, IBExpert /SQL ist nicht gerade mein Steckenpferd
Geri12
Beiträge: 589
Registriert: Mi Apr 16, 2008 7:51 am

Beitrag von Geri12 »

Hallo :wink:

Das Komma zeigt, dass die Liste noch weitergeht. An folgenden Stellen somit keine Kommas ...

Code: Alles auswählen

MASCHINE1,
as
... und ... 
A.BEZ,
from FRMV_BWERKZ
also dort:

Code: Alles auswählen

MASCHINE1
as
... und ... 
A.BEZ
from FRMV_BWERKZ
Gruß
Geri12
Fanja
Beiträge: 20
Registriert: Mo Jun 30, 2008 12:57 pm

Beitrag von Fanja »

:D

Komma gesetzt, Klammer gesetzt, jetzt ist es der LEFT JOIN:
darauf habe ich gewartet, den da war ich mir von Anfang an nicht sicher

Code: Alles auswählen

/*******************************************************************************
The next statement causes the following error: 

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 12, char 1.
LEFT.
*******************************************************************************/
create view V_DRITTE (
ID,
MASKENKEY,
MASCHINE1)
as
SELECT
A.ID,
A.MASKENKEY,
A.BEZ
from FRMV_BWERKZ
where ID = 1
LEFT OUTER JOIN MASCHINE1 A on A.BEZ = B.ID
;
end
set term;;
Das Feld MAschine1 soll mit dem Datensatz BEZ aus FRMV_BWERKZ entnommen werden und zwar der erste (ID=1)und nur der erste.
Geri12
Beiträge: 589
Registriert: Mi Apr 16, 2008 7:51 am

Beitrag von Geri12 »

Du hast nirgends den Alias "B" vergeben :cry:

Code: Alles auswählen

create view V_DRITTE (
ID,
MASKENKEY,
MASCHINE1)
as
SELECT
A.ID,
A.MASKENKEY,
A.BEZ
from FRMV_BWERKZ B
where B.ID = 1
LEFT OUTER JOIN MASCHINE1 A on A.BEZ = B.ID
;
Hier ein Link bzgl. SQL in IBExpert ...
http://www.ibexpert.info/de/documentation/index.html

Und der hier ist auch ganz gut für den Anfang ...
http://www.computerjockey.de/mcdba/SQL_ ... #TopOfPage

Gruß
Geri12
Fanja
Beiträge: 20
Registriert: Mo Jun 30, 2008 12:57 pm

Beitrag von Fanja »

Ich lese mich mal durch die Doku.
Thanks Geri,
Fanja
Beiträge: 20
Registriert: Mo Jun 30, 2008 12:57 pm

Beitrag von Fanja »

Hi Geri,
Da muss ich nochmal nachhaken: Wie ist das mit dem Alias? Warum ein B?
Gruß F
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Beitrag von miboe »

Vom fehlenden Alias B mal abgesehen gehört der LEFT OUTER JOIN immer vor das WHERE. Aufbau also wie folgt:

Code: Alles auswählen

CREATE VIEW xyz (
  View_Feld1,
  View_Feld2,
  View_Feld3)
AS SELECT
  A.Feld1,
  A.Feld2,
  B.Feld1
FROM Tabelle1 A
LEFT OUTER JOIN Tabelle2 B ON B.xxx = A.xxx
WHERE ...
;
Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
Antworten