Problem bei Umstellung auf MySQL 5.x
am 28.06.2006 22:20:25 von Jan PokrandtHallo Allerseits,
bei der Umstellung einer Anwendung auf den MySQL 5.x-Server komme ich mit
einer SQL-Abfrage einfach nicht weiter.
Folgendes funktioniert unter MySQL 3.23 und 4.x einwandfrei :
select
A.REC_ID,A.EK_PREIS,A.VK_PREIS,
AP.PREIS,
AB_EKBEST.SUM_MENGE as MENGE_BESTELLT,
AB_VKRE_EDI.SUM_MENGE as MENGE_RESERVIERT,
ME.BEZEICHNUNG as ME_EINHEIT,
LIEFPOS.MENGE as MENGE_LIEF,
JP1.MENGE as MENGE_SOLL,
JP1.REC_ID as JID
from
JOURNALPOS JP1,
ARTIKEL A
left outer join ARTIKEL_PREIS AP on AP.ARTIKEL_ID=A.REC_ID
left outer join LIEFERSCHEIN_POS LIEFPOS on LIEFPOS.REC_ID=JP1.QUELLE_SRC
left outer join ARTIKEL_BDATEN AB_EKBEST on AB_EKBEST.ARTIKEL_ID=A.REC_ID
and AB_EKBEST.QUELLE=26
left outer join ARTIKEL_BDATEN AB_VKRE_EDI on
AB_VKRE_EDI.ARTIKEL_ID=A.REC_ID and AB_VKRE_EDI.QUELLE=13
left outer JOIN MENGENEINHEIT ME on ME.REC_ID=A.ME_ID
where (JP1.JOURNAL_ID=0) and (JP1.ARTIKEL_ID=A.REC_ID)
group by A.REC_ID, AP.ADRESS_ID, JP1.REC_ID;
unter MySQL 5.0.15-NT erhalte ich folgende Fehlermeldung :
Unbekanntes Tabellenfeld 'JP1.QUELLE_SRC' in on clause
Ich versuche mich jetzt schon einige Tage daran, bin der Lösung aber keinen
Schritt näher gekommen.
Weiss jemand was ich falsch mache oder wie ich das Problem evt. umgehen
kann.
Script zum Anlegen der Tabellen :
CREATE TABLE ARTIKEL (
REC_ID int(11) NOT NULL auto_increment,
ARTNUM varchar(20) default NULL,
EK_PREIS decimal(12,4) NOT NULL default '0.0000',
VK_PREIS decimal(12,4) NOT NULL default '0.0000',
ME_ID int(11) NOT NULL default '1',
PRIMARY KEY (REC_ID)
);
CREATE TABLE ARTIKEL_BDATEN (
ARTIKEL_ID int(11) NOT NULL default '-1',
QUELLE tinyint(2) unsigned NOT NULL default '0',
SUM_MENGE decimal(12,4) NOT NULL default '0.0000',
PRIMARY KEY (ARTIKEL_ID,QUELLE),
KEY IDX_QUELLE (QUELLE,ARTIKEL_ID)
);
CREATE TABLE ARTIKEL_PREIS (
ARTIKEL_ID int(11) NOT NULL default '-1',
ADRESS_ID int(11) NOT NULL default '-1',
PREIS decimal(12,4) NOT NULL default '0.0000',
PRIMARY KEY (ARTIKEL_ID,ADRESS_ID)
);
CREATE TABLE MENGENEINHEIT (
REC_ID int(11) unsigned NOT NULL auto_increment,
BEZEICHNUNG varchar(50) NOT NULL default '',
PRIMARY KEY (REC_ID),
UNIQUE KEY BEZEICHNUNG (BEZEICHNUNG)
);
CREATE TABLE JOURNALPOS (
REC_ID int(11) NOT NULL auto_increment,
JOURNAL_ID int(11) NOT NULL default '0',
QUELLE_SRC int(11) NOT NULL default '-1',
ARTIKEL_ID int(11) NOT NULL default '-1',
MENGE decimal(10,3) NOT NULL default '0.000',
PRIMARY KEY (REC_ID),
KEY ARTIKEL_ID (ARTIKEL_ID)
);
CREATE TABLE LIEFERSCHEIN_POS (
REC_ID int(11) NOT NULL auto_increment,
MENGE decimal(10,3) NOT NULL default '0.000',
PRIMARY KEY (REC_ID)
);
Viele Grüße, Jan