[gelöst]Problem bei der Menge an Abfragewerten

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

DeeJay
**
Beiträge: 38
Registriert: Mo, 21.04.2008 09:39
Kontaktdaten:

[gelöst]Problem bei der Menge an Abfragewerten

Beitrag von DeeJay »

Guten Morgen
Ich hab nun gerade eine Abfrage mit 29 Abfragewerten aus 6 Tabellen
Diese werden bis 25 ohne Probleme hinzugefügt.
Anschließend erweitert sich im Assistenten unten zwar die Liste Schrittweise aber ich kann den 29. z.b. nicht mehr ändern , wenn ich dann die Abfrage versuche auszuführen hängt sich Base auf.

Die DB ist halt MySQL auf einem Gentoo Server
Schnitstelle per ODBC.
Das "Frontend" bearbeite ich gerade auf einem P4 2.6 GHz mit 512MB Ram unter Windows 2000


edit: hab jetzt mal zusätzlich die 3beta2 installiert , unter dieser tritt das gleich auf

edit2: eigene dummheit , man sollte primärschlüssel richtig setzen
Zuletzt geändert von DeeJay am Di, 09.09.2008 07:48, insgesamt 1-mal geändert.
oOO 2.4.1
Windows 2000 /Kubuntu 8.04
MySQL 5.0.60 (Gentoo Server)
DeeJay
**
Beiträge: 38
Registriert: Mo, 21.04.2008 09:39
Kontaktdaten:

Re: Problem bei der Menge an Abfragewerten

Beitrag von DeeJay »

Code: Alles auswählen

SELECT `tbl_Adressen`.`Firma1`, `tbl_Adressen`.`Strasse`, `tbl_Adressen`.`PLZ`, `tbl_Adressen`.`Ort`, `tbl_Angebot`.`AngNr`, `tbl_Angebot`.`ProjektZeile1`, `tbl_Angebot`.`ProjektZeile2`, `tbl_Angebot_Version`.`Version`, `tbl_Angebot_Version`.`AnlDatum`, `tbl_Angebot_Version`.`Ansprechpartner`, `tbl_Angebot_Version`.`Abteilung`, `tbl_Angebot_Version`.`Tel`, `tbl_Angebot_Version`.`Fax`, `tbl_Angebot_Version`.`Anfrage`, `tbl_Angebot_Version`.`ZusatzText`, `tbl_Angebot_Version_Daten`.`PosNr`, `tbl_Angebot_Version_Daten`.`WZ_Nr`, `tbl_Angebot_Version_Daten`.`WZ_Version`, `tbl_WZ_Version`.`WZ_VersionTxt`, `tbl_WZ_Version`.`WZ_KundenNr`, `tbl_Angebot_Version_Daten`.`WZ_Text`, `tbl_Angebot_Version_Daten_Staffel`.`StaffelNr`, `tbl_Angebot_Version_Daten_Staffel`.`Menge`, `tbl_Angebot_Version`.`LandUSA`, `tbl_Angebot_Version`.`Vorname`, `tbl_Angebot_Version`.`Anrede`, `tbl_Adressen`.`Waehrung`, `tbl_Angebot`.`DollarKurs` FROM `wzdb`.`tbl_Angebot_Version_Daten_Staffel` AS `tbl_Angebot_Version_Daten_Staffel`, `wzdb`.`tbl_Angebot_Version_Daten` AS `tbl_Angebot_Version_Daten`, `wzdb`.`tbl_WZ_Version` AS `tbl_WZ_Version`, `wzdb`.`tbl_Angebot_Version` AS `tbl_Angebot_Version`, `wzdb`.`tbl_Angebot` AS `tbl_Angebot`, `wzdb`.`tbl_Adressen` AS `tbl_Adressen` WHERE `tbl_Angebot_Version_Daten_Staffel`.`PosNr` = `tbl_Angebot_Version_Daten`.`PosNr` AND `tbl_Angebot_Version_Daten_Staffel`.`AngNr` = `tbl_Angebot_Version_Daten`.`AngNr` AND `tbl_Angebot_Version_Daten_Staffel`.`Version` = `tbl_Angebot_Version_Daten`.`Version` AND `tbl_WZ_Version`.`WZ_Nr` = `tbl_Angebot_Version_Daten`.`WZ_Nr` AND `tbl_WZ_Version`.`WZ_Version` = `tbl_Angebot_Version_Daten`.`WZ_Version` AND `tbl_Angebot_Version_Daten`.`AngNr` = `tbl_Angebot_Version`.`AngNr` AND `tbl_Angebot_Version`.`AngNr` = `tbl_Angebot`.`AngNr` AND `tbl_Angebot`.`LfdAdrNr` = `tbl_Adressen`.`LfdAdrNr`

so sieht die select aus , aber es fehlt ansich sogar noch eine if abfrage darin.
dies ist momentan nur das was im assistenten zusammenkam , sobald ich da dann auch anzeigen gehen stürzt OOo ab


ok hab nun versucht die ausgabe ein wenig zu kürzen durch distinctrows

Code: Alles auswählen

SELECT DISTINCTROW tbl_Adressen.Firma1, tbl_Adressen.Strasse, tbl_Adressen.PLZ, tbl_Adressen.Ort, tbl_Angebot.AngNr, tbl_Angebot.ProjektZeile1, tbl_Angebot.ProjektZeile2, tbl_Angebot_Version.Version, tbl_Angebot_Version.AnlDatum, tbl_Angebot_Version.Ansprechpartner, tbl_Angebot_Version.Abteilung, tbl_Angebot_Version.Tel, tbl_Angebot_Version.Fax, tbl_Angebot_Version.Anfrage, tbl_Angebot_Version.ZusatzText, tbl_Angebot_Version_Daten.PosNr, tbl_Angebot_Version_Daten.WZ_Nr, tbl_Angebot_Version_Daten.WZ_Version, tbl_WZ_Version.WZ_VersionTxt, tbl_WZ_Version.WZ_KundenNr, tbl_Angebot_Version_Daten.WZ_Text, tbl_Angebot_Version_Daten_Staffel.StaffelNr, tbl_Angebot_Version_Daten_Staffel.Menge, IIf(`Staffel_PreisManuell`<>0,`Staffel_PreisManuell`,`Staffel_Preis`) AS VKPreis, tbl_Angebot_Version.LandUSA, tbl_Angebot_Version.Vorname, tbl_Angebot_Version.Anrede, tbl_Adressen.Waehrung, tbl_Angebot.DollarKurs
FROM tbl_WZ_Version INNER JOIN ((tbl_Adressen INNER JOIN tbl_Angebot ON tbl_Adressen.LfdAdrNr = tbl_Angebot.LfdAdrNr) INNER JOIN (tbl_Angebot_Version INNER JOIN (tbl_Angebot_Version_Daten LEFT JOIN tbl_Angebot_Version_Daten_Staffel ON (tbl_Angebot_Version_Daten.Version = tbl_Angebot_Version_Daten_Staffel.Version) AND (tbl_Angebot_Version_Daten.AngNr = tbl_Angebot_Version_Daten_Staffel.AngNr) AND (tbl_Angebot_Version_Daten.PosNr = tbl_Angebot_Version_Daten_Staffel.PosNr)) ON (tbl_Angebot_Version.Version = tbl_Angebot_Version_Daten.Version) AND (tbl_Angebot_Version.AngNr = tbl_Angebot_Version_Daten.AngNr)) ON tbl_Angebot.AngNr = tbl_Angebot_Version.AngNr) ON (tbl_WZ_Version.WZ_Version = tbl_Angebot_Version_Daten.WZ_Version) AND (tbl_WZ_Version.WZ_Nr = tbl_Angebot_Version_Daten.WZ_Nr);
wird aber leider nicht besser , die db freezt :(

aber ich brauch ne lösung weil da kommen noch einige abfragen/berechnungen in abfragen die genauso bzw noch länger sind
oOO 2.4.1
Windows 2000 /Kubuntu 8.04
MySQL 5.0.60 (Gentoo Server)
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Problem bei der Menge an Abfragewerten

Beitrag von Barlee »

Hallo DeeJay,
siehst Du bei den vielen JOINS eigentlich noch durch? ;-)
Kleiner Tip: Formatier am besten die Abfragen einmal durch bevor Du sie hier einstellst. Das macht's für uns alle einfacher.

Dass Dir die DB einfriert liegt vermutlich an irgendeiner falschern JOIN-Bedingung, die eine VIELZAHL an Ergebnisdatensätzen liefert.
Am besten Du beginnst mit höchstens drei beteiligten Tabellen, testest dann das Ergebnis und fügst nach und nach die anderen hinzu.

Gruß Barlee
DeeJay
**
Beiträge: 38
Registriert: Mo, 21.04.2008 09:39
Kontaktdaten:

Re: Problem bei der Menge an Abfragewerten

Beitrag von DeeJay »

ich hab mir die nicht ausgesucht ;)
wie ich schon woanders hier mal geschrieben habe versuche ich eine access db in ooo zu portieren.
dort sieht der code auch so wild aus mit den vielen joins , aber die müssen scheinbar so sein

aus der db werden zum schluß werkzeugzeichnungen errechnet , diese abfrage dort ist zwar für ein report für adressen , aber in verbindung mit werzeugen die angeboten wurden und eine verknüpfung zu zeichnungen etc haben.


den code habe ich so kopiert wie er in base dargestellt wird , gibts dort irgendeine option das der mal sauber dargestellt wird?

macht mich selbst immer wieder irre wenn dort alles aneinander gehängt wird

Mfg DeeJay aka Stefan
oOO 2.4.1
Windows 2000 /Kubuntu 8.04
MySQL 5.0.60 (Gentoo Server)
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Problem bei der Menge an Abfragewerten

Beitrag von Barlee »

Hallo DeeJay,
den code habe ich so kopiert wie er in base dargestellt wird , gibts dort irgendeine option das der mal sauber dargestellt wird?
Meines Wissens nicht. Die Formatierung bleibt nur erhalten, wenn "SQL direkt ausführen" aktiviert ist.

Apropos "SQL Kommando direkt ausführen". Du schreibst, dass Base hängenbleibt. Hast Du die Ausführung der Abfrage mal sowohl mit als auch ohne diese Option probiert?

Läuft die Abfrage ansonsten einwandfrei durch, wenn Du sie z.B. im MySQL Query Browser ausführst?

Gruß Barlee
DeeJay
**
Beiträge: 38
Registriert: Mo, 21.04.2008 09:39
Kontaktdaten:

Re: Problem bei der Menge an Abfragewerten

Beitrag von DeeJay »

guten morgen , also ich hab das ganze an abfrage nun mal in phpmyadmin in sql ausführen gemacht , da bleibt der nun seit über 10min am laden , weis nicht ob der je zu einem ergebnis kommt, aber danach aussehen tut es nicht.

das schlimme ist das es in access keine 20 sekunden dauert bis die abfrage durch ist und ein ergebnis gezeigt wird

edit:
hab jetzt beide abfrageformen die oben gepostet sind probiert , jeweils nach einer stunde kein ergebnis. scheinbar hängt sich dann mysql auf dem server ganz auf und es hilft nur ein reboot.
oOO 2.4.1
Windows 2000 /Kubuntu 8.04
MySQL 5.0.60 (Gentoo Server)
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Problem bei der Menge an Abfragewerten

Beitrag von Barlee »

Hallo DeeJay,

schwer zu sagen woran es scheitert. Ich würde -testweise- einmal die Schreibweise umstellen und dann probieren,
Also anstelle von:

Code: Alles auswählen

SELECT tab1.Spalte1, tab1.Spalte2, tab2.Spalte2 FROM tab1 INNER JOIN tab2 ON tab1.Spalte2=tab2.Spalte2
versuche es einmal mit:

Code: Alles auswählen

SELECT tab1.Spalte1, tab1.Spalte2, tab2.Spalte2 FROM tab1, tab2 WHERE tab1.Spalte2=tab2.Spalte2
Gruß Barlee
DeeJay
**
Beiträge: 38
Registriert: Mo, 21.04.2008 09:39
Kontaktdaten:

Re: Problem bei der Menge an Abfragewerten

Beitrag von DeeJay »

Code: Alles auswählen

SELECT DISTINCTROW 
`tbl_Adressen`.`Firma1`, `tbl_Adressen`.`Strasse`, `tbl_Adressen`.`PLZ`, `tbl_Adressen`.`Ort`, 
`tbl_Angebot`.`AngNr`, `tbl_Angebot`.`ProjektZeile1`, `tbl_Angebot`.`ProjektZeile2`, `tbl_Angebot_Version`.`Version`, `tbl_Angebot_Version`.`AnlDatum`, `tbl_Angebot_Version`.`Ansprechpartner`, `tbl_Angebot_Version`.`Abteilung`, `tbl_Angebot_Version`.`Tel`, `tbl_Angebot_Version`.`Fax`, `tbl_Angebot_Version`.`Anfrage`, `tbl_Angebot_Version`.`ZusatzText`,
`tbl_Angebot_Version_Daten`.`PosNr`, `tbl_Angebot_Version_Daten`.`WZ_Nr`, `tbl_Angebot_Version_Daten`.`WZ_Version`, 
`tbl_WZ_Version`.`WZ_VersionTxt`, `tbl_WZ_Version`.`WZ_KundenNr`, 
`tbl_Angebot_Version_Daten`.`WZ_Text`, `tbl_Angebot_Version_Daten_Staffel`.`StaffelNr`, `tbl_Angebot_Version_Daten_Staffel`.`Menge`, `tbl_Angebot_Version`.`LandUSA`, `tbl_Angebot_Version`.`Vorname`, `tbl_Angebot_Version`.`Anrede`, `tbl_Adressen`.`Waehrung`, `tbl_Angebot`.`DollarKurs` 
FROM `wzdb`.`tbl_Angebot_Version_Daten_Staffel` AS `tbl_Angebot_Version_Daten_Staffel`, `wzdb`.`tbl_Angebot_Version_Daten` AS `tbl_Angebot_Version_Daten`, `wzdb`.`tbl_WZ_Version` AS `tbl_WZ_Version`, `wzdb`.`tbl_Angebot_Version` AS `tbl_Angebot_Version`, `wzdb`.`tbl_Angebot` AS `tbl_Angebot`, `wzdb`.`tbl_Adressen` AS `tbl_Adressen`
 WHERE `tbl_Angebot_Version_Daten_Staffel`.`PosNr` = `tbl_Angebot_Version_Daten`.`PosNr` AND `tbl_Angebot_Version_Daten_Staffel`.`AngNr` = `tbl_Angebot_Version_Daten`.`AngNr` AND `tbl_Angebot_Version_Daten_Staffel`.`Version` = `tbl_Angebot_Version_Daten`.`Version` AND `tbl_WZ_Version`.`WZ_Nr` = `tbl_Angebot_Version_Daten`.`WZ_Nr` AND `tbl_WZ_Version`.`WZ_Version` = `tbl_Angebot_Version_Daten`.`WZ_Version` AND `tbl_Angebot_Version_Daten`.`AngNr` = `tbl_Angebot_Version`.`AngNr` AND `tbl_Angebot_Version`.`AngNr` = `tbl_Angebot`.`AngNr` AND `tbl_Angebot`.`LfdAdrNr` = `tbl_Adressen`.`LfdAdrNr`
die abfrage dort funktioniert, nur ist dort das if nicht drin.

Fehler war: ich hatte nach dem neu abgleich der Daten die Primärschlüssel nicht neu gesetzt *vornkopphau*


edit:
nun mit IF , funktioniert auch :)

Code: Alles auswählen

SELECT DISTINCTROW 
`tbl_Adressen`.`Firma1`, `tbl_Adressen`.`Strasse`, `tbl_Adressen`.`PLZ`, `tbl_Adressen`.`Ort`, 
`tbl_Angebot`.`AngNr`, `tbl_Angebot`.`ProjektZeile1`, `tbl_Angebot`.`ProjektZeile2`, `tbl_Angebot_Version`.`Version`, `tbl_Angebot_Version`.`AnlDatum`, `tbl_Angebot_Version`.`Ansprechpartner`, `tbl_Angebot_Version`.`Abteilung`, `tbl_Angebot_Version`.`Tel`, `tbl_Angebot_Version`.`Fax`, `tbl_Angebot_Version`.`Anfrage`, `tbl_Angebot_Version`.`ZusatzText`,
`tbl_Angebot_Version_Daten`.`PosNr`, `tbl_Angebot_Version_Daten`.`WZ_Nr`, `tbl_Angebot_Version_Daten`.`WZ_Version`, 
`tbl_WZ_Version`.`WZ_VersionTxt`, `tbl_WZ_Version`.`WZ_KundenNr`, 
`tbl_Angebot_Version_Daten`.`WZ_Text`, `tbl_Angebot_Version_Daten_Staffel`.`StaffelNr`, `tbl_Angebot_Version_Daten_Staffel`.`Menge`,
If(`Staffel_PreisManuell`<>0,`Staffel_PreisManuell`,`Staffel_Preis`) AS VKPreis,
 `tbl_Angebot_Version`.`LandUSA`, `tbl_Angebot_Version`.`Vorname`, `tbl_Angebot_Version`.`Anrede`, `tbl_Adressen`.`Waehrung`, `tbl_Angebot`.`DollarKurs` 
FROM `wzdb`.`tbl_Angebot_Version_Daten_Staffel` AS `tbl_Angebot_Version_Daten_Staffel`, `wzdb`.`tbl_Angebot_Version_Daten` AS `tbl_Angebot_Version_Daten`, `wzdb`.`tbl_WZ_Version` AS `tbl_WZ_Version`, `wzdb`.`tbl_Angebot_Version` AS `tbl_Angebot_Version`, `wzdb`.`tbl_Angebot` AS `tbl_Angebot`, `wzdb`.`tbl_Adressen` AS `tbl_Adressen`
 WHERE `tbl_Angebot_Version_Daten_Staffel`.`PosNr` = `tbl_Angebot_Version_Daten`.`PosNr` AND `tbl_Angebot_Version_Daten_Staffel`.`AngNr` = `tbl_Angebot_Version_Daten`.`AngNr` AND `tbl_Angebot_Version_Daten_Staffel`.`Version` = `tbl_Angebot_Version_Daten`.`Version` AND `tbl_WZ_Version`.`WZ_Nr` = `tbl_Angebot_Version_Daten`.`WZ_Nr` AND `tbl_WZ_Version`.`WZ_Version` = `tbl_Angebot_Version_Daten`.`WZ_Version` AND `tbl_Angebot_Version_Daten`.`AngNr` = `tbl_Angebot_Version`.`AngNr` AND `tbl_Angebot_Version`.`AngNr` = `tbl_Angebot`.`AngNr` AND `tbl_Angebot`.`LfdAdrNr` = `tbl_Adressen`.`LfdAdrNr`

Danke
siehe dazu auch viewtopic.php?f=17&t=19510 ;)
oOO 2.4.1
Windows 2000 /Kubuntu 8.04
MySQL 5.0.60 (Gentoo Server)
Antworten