Select aus eigenen Werten

Select aus eigenen Werten

am 25.04.2007 08:36:04 von Mathias Fiedler

Hallo,
ich habe eine Tabelle, in der ich mehrere ID's anderer Tabelleneinträge
speichere. Eine Tabelle davon setzt sich aus einem Wort und einem
Datenbankeintrag zusammen.
Die Tabellen heisen city1 bis city25. Das City 1 setzt sich zusammen aus
dem Wort city und der countryID meiner Haupttabelle. Das funktioniert
soweit auch ganz gut. Nun komme ich aber an einer bestimmten Abfrage auf ds
Problem, dass ich in einem JOIN die Tabelle city21 brauche, die 21 aber in
der selben Tabelle als ID vorhanden ist.
Noch mal einfach:
Meine Haupttabelle hat den Inhalt
ID,cityID,countryID,Name

Mein Join heist nun:

SELECT a.ID,c.city,co.country FROM Haupttabelle as a INNER JOIN $tabelle as
c ON a.cityID = c.cityID INNER JOIN country as co ON a.countryID =
co.countryID

Das ist soweit richtig. Nur die Variable $tabelle muß den wert "city21"
enthalten. Das wort "city" ist ja kein problem aber die ID steht in der
Haupttabelle unter countryID. Wie bekomme ich denn jetzt in einer Abfage
den Wert countryID heraus um ihn mit dem Wort "city" zu kombinieren um dann
diesen neuen Wert gleich noch in der selben Abfrage als variable $tabelle
zu verwenden?

mfg

Mathias

Re: Select aus eigenen Werten

am 25.04.2007 12:26:14 von Stephan Menzel

On Wed, 25 Apr 2007 08:36:04 +0200, Mathias Fiedler
wrote:

>Hallo,
>ich habe eine Tabelle, in der ich mehrere ID's anderer Tabelleneinträge
>speichere. Eine Tabelle davon setzt sich aus einem Wort und einem
>Datenbankeintrag zusammen.
>Die Tabellen heisen city1 bis city25. Das City 1 setzt sich zusammen aus
>dem Wort city und der countryID meiner Haupttabelle. Das funktioniert
>soweit auch ganz gut. Nun komme ich aber an einer bestimmten Abfrage auf ds
>Problem, dass ich in einem JOIN die Tabelle city21 brauche, die 21 aber in
>der selben Tabelle als ID vorhanden ist.
>Noch mal einfach:
>Meine Haupttabelle hat den Inhalt
>ID,cityID,countryID,Name
>
>Mein Join heist nun:
>
>SELECT a.ID,c.city,co.country FROM Haupttabelle as a INNER JOIN $tabelle as
>c ON a.cityID = c.cityID INNER JOIN country as co ON a.countryID =
>co.countryID

Was willst du eigentlich herausfinden, bzw wozu ist die Tabelle gut?
>
>Das ist soweit richtig. Nur die Variable $tabelle muß den wert "city21"
Ich weiss nicht was Du verwendest aber Variablen haben bei MySQL
eigentlich die Form @Variable auser sie sind in einer SP, was mich
gleich zum nächsten Punkt bringt, das Du das SELECT mit einer
StoredProcedure machst oder mit einer Vorbereiteten SQL-Anweisung per
PREPARE.

>enthalten. Das wort "city" ist ja kein problem aber die ID steht in der
>Haupttabelle unter countryID. Wie bekomme ich denn jetzt in einer Abfage
>den Wert countryID heraus um ihn mit dem Wort "city" zu kombinieren um dann
>diesen neuen Wert gleich noch in der selben Abfrage als variable $tabelle
>zu verwenden?
>
>mfg
>
>Mathias

cu Stephan

Re: Select aus eigenen Werten

am 25.04.2007 12:42:05 von Mathias Fiedler

Am Wed, 25 Apr 2007 12:26:14 +0200 schrieb Stephan Menzel:

> On Wed, 25 Apr 2007 08:36:04 +0200, Mathias Fiedler
> wrote:
>
>>Hallo,
>>ich habe eine Tabelle, in der ich mehrere ID's anderer Tabelleneinträge
>>speichere. Eine Tabelle davon setzt sich aus einem Wort und einem
>>Datenbankeintrag zusammen.
>>Die Tabellen heisen city1 bis city25. Das City 1 setzt sich zusammen aus
>>dem Wort city und der countryID meiner Haupttabelle. Das funktioniert
>>soweit auch ganz gut. Nun komme ich aber an einer bestimmten Abfrage auf ds
>>Problem, dass ich in einem JOIN die Tabelle city21 brauche, die 21 aber in
>>der selben Tabelle als ID vorhanden ist.
>>Noch mal einfach:
>>Meine Haupttabelle hat den Inhalt
>>ID,cityID,countryID,Name
>>
>>Mein Join heist nun:
>>
>>SELECT a.ID,c.city,co.country FROM Haupttabelle as a INNER JOIN $tabelle as
>>c ON a.cityID = c.cityID INNER JOIN country as co ON a.countryID =
>>co.countryID
>
> Was willst du eigentlich herausfinden, bzw wozu ist die Tabelle gut?
Das ist doch unrelevant.
>>
>>Das ist soweit richtig. Nur die Variable $tabelle muß den wert "city21"
> Ich weiss nicht was Du verwendest aber Variablen haben bei MySQL
> eigentlich die Form @Variable auser sie sind in einer SP, was mich
> gleich zum nächsten Punkt bringt, das Du das SELECT mit einer
> StoredProcedure machst oder mit einer Vorbereiteten SQL-Anweisung per
> PREPARE.
Ich arbeite mit php und erstelle in php den mysqlString. Deshalb $tabelle.
Das eine Variable in mysql @var erstellt wird, weis ich auch. Nur eben
nicht wie ich die besagten Werte da rein bekomme.



Also nochmal.
Ich habe eine Tabelle, darin stehen Orte. Ich habe eine weitere Tabelle,
darin stehen Ländernamen. Jedes Land hat nun eine ID. Diese ID steht in der
Haupttabelle bei countryID. Für jedes Land gibt es eine Tabelle mit Orten.
Diese Tabelle setzt sich zusammena us dem Wort "city" und der ID des
Landes. Deutschland hat in der Ländertabelle die ID 21 also stehen alle
Orte dazu in der Tabelle city21.

In der Haupttabelle stehen nun die Einträge:
ID,cityID,countryID,Name

Um nun mit einer einzigen Abfrage alle daten zu haben muß ich einen JOIN
nehmen.Ich kenne die Haupttabelle, ich kenne die country Tabelle. Ich kenne
aber nicht die City Tabelle, denn die setzt sich ja aus "city" und der
countryID zusammen. Die countryID kann ich auslesen. Die steht ja in der
Hauptabelle.

Ich muß in meinem JOIN also zuerst die countyID auslesen, mit dieser und
dem Wort "city" meinen Tabellennamen erzeugen, also "city21" und dann kann
ich in dem selben JOIN diese Tabelle joinen.

Mein JOIN müßte also folgendermaßen aussehen

SELECT a.ID,c.city,co.country FROM Haupttabelle as a INNER JOIN city21 as
c ON a.cityID = c.cityID INNER JOIN country as co ON a.countryID =
co.countryID

An stelle von city21 müßte nun aber ein Statement, welches mir aus der
countryID und dem Wort "city" erst mal den Tabellennamen erzeugt.

Ich hoffe, das war nun so verständlich, wie es sein sollte. Ich weis nicht,
wie ich das noch anders erklären könnte.

mfg

Mathias

Re: Select aus eigenen Werten

am 25.04.2007 13:15:51 von Kai Ruhnau

Mathias Fiedler wrote:
> Ich habe eine Tabelle, darin stehen Orte. Ich habe eine weitere Tabelle,
> darin stehen Ländernamen. Jedes Land hat nun eine ID. Diese ID steht in der
> Haupttabelle bei countryID. Für jedes Land gibt es eine Tabelle mit Orten.
> Diese Tabelle setzt sich zusammena us dem Wort "city" und der ID des
> Landes. Deutschland hat in der Ländertabelle die ID 21 also stehen alle
> Orte dazu in der Tabelle city21.

Dein Design ist kaputt.
Ändere das Design in ein normalisiertes und du wirst keine Probleme mit
der Abfrage haben.

Grüße
Kai

Re: Select aus eigenen Werten

am 25.04.2007 17:02:45 von Mathias Fiedler

Am Wed, 25 Apr 2007 13:15:51 +0200 schrieb Kai Ruhnau:

> Mathias Fiedler wrote:
>> Ich habe eine Tabelle, darin stehen Orte. Ich habe eine weitere Tabelle,
>> darin stehen Ländernamen. Jedes Land hat nun eine ID. Diese ID steht in der
>> Haupttabelle bei countryID. Für jedes Land gibt es eine Tabelle mit Orten.
>> Diese Tabelle setzt sich zusammena us dem Wort "city" und der ID des
>> Landes. Deutschland hat in der Ländertabelle die ID 21 also stehen alle
>> Orte dazu in der Tabelle city21.
>
> Dein Design ist kaputt.
> Ändere das Design in ein normalisiertes und du wirst keine Probleme mit
> der Abfrage haben.
>
> Grüße
> Kai

Mann oh mann, schon wieder. Mein Design ist nicht kaputt ! Es ging um die
Frage, ob diese Art der Abfrage möglich ist. Nichts anderes! Wenn also
jemand eine Lösung dafür hat oder auch wenigstens einen Ansatz, wäre ich
sehr dankbar. Andernfalls bitte nicht unnötig den Traffic erhöhen. Ich habe
so eine Abfrage schon mal gesehen. Es muß also möglich sein. Ich weis nur
nicht mehr wie.

mfg

Mathias

Re: Select aus eigenen Werten

am 25.04.2007 17:30:06 von Kai Ruhnau

Mathias Fiedler wrote:
> Am Wed, 25 Apr 2007 13:15:51 +0200 schrieb Kai Ruhnau:
>
>> Mathias Fiedler wrote:
>>> Ich habe eine Tabelle, darin stehen Orte. Ich habe eine weitere Tabelle,
>>> darin stehen Ländernamen. Jedes Land hat nun eine ID. Diese ID steht in der
>>> Haupttabelle bei countryID. Für jedes Land gibt es eine Tabelle mit Orten.
>>> Diese Tabelle setzt sich zusammena us dem Wort "city" und der ID des
>>> Landes. Deutschland hat in der Ländertabelle die ID 21 also stehen alle
>>> Orte dazu in der Tabelle city21.
>> Dein Design ist kaputt.
>> Ändere das Design in ein normalisiertes und du wirst keine Probleme mit
>> der Abfrage haben.
>>
>> Grüße
>> Kai
>
> Mann oh mann, schon wieder. Mein Design ist nicht kaputt !

Doch, ist es. Auch wenn du immer und immer wieder behauptest, dass es
das nicht ist. Hättest du die countryID als Spalte einer Tabelle "city"
wärst du mit einer zusätzlichen JOIN-Bedingung fertig.

> Es ging um die Frage, ob diese Art der Abfrage möglich ist.

Du willst abhängig von den Daten *pro Zeile* eine andere Tabelle joinen.
Das geht nicht.

> Nichts anderes!

Dass du nicht bereit bist, den Hinweisen auf ein kaputtes
Datenbankmodell nachzugehen, hast du in der Vergangenheit schon oft
genug bewiesen. das brauchst du hier nicht wieder breitzutreten.

> Wenn also
> jemand eine Lösung dafür hat oder auch wenigstens einen Ansatz, wäre ich
> sehr dankbar.

Ein Ansatz wäre:

SELECT
CASE countryID
WHEN 1 THEN city1.feld1
WHEN 2 THEN city2.feld1
...
WHEN 25 THEN city25.feld1
END CASE,
CASE countryID
WHEN 1 THEN city1.feld2
WHEN 2 THEN city2.feld2
...
WHEN 25 THEN city25.feld2
END CASE,
...
FROM country
LEFT JOIN city1 ON $bedingung
LEFT JOIN city2 ON $bedingung
....
LEFT JOIN city25 ON $bedingung
....

Aber das willst du nicht wirklich.

> Andernfalls bitte nicht unnötig den Traffic erhöhen.

Wie wir dir eigentlich in jedem deiner Threads bisher schonmal gesagt
hatten: Wenn du keine Antworten willst, dann frage nicht.
Darauf hast du bisher jedesmal sinngemäß geantwortet, dass du nur die
Antworten haben möchtest, die du dir aussuchst.
Anschließend wiesen wir dich jedesmal darauf hin, dass dafür bezahlter
Support existiert und dass das Usenet eine andere Zielsetzung hat.

Entschuldige bitte, dass ich das gerade einmal abkürze. Aber ich habe
keine Lust auf unnötigen Traffic.

Grüße
Kai

Re: Select aus eigenen Werten

am 25.04.2007 17:57:46 von Thomas Rachel

Mathias Fiedler wrote:

> Mann oh mann, schon wieder. Mein Design ist nicht kaputt !

Es ist nicht normalisiert. Im Zusammenhang mit relationalen Datenbanken
ist es nur dann sinnvoll, von Normalisierung abzuweichen, wenn es gar
nicht anders geht, denn nicht normalisiertes Tabellendesign führt zu
vermeidbaren Einschränkungen = kaputt.

> Es ging um die Frage, ob diese Art der Abfrage möglich ist.

Nein.


> Wenn also jemand eine Lösung dafür hat oder auch wenigstens einen
> Ansatz, wäre ich sehr dankbar.

Führe alle Tabellen zusammen zu einer einzigen, die ein zusätzliches Feld
"CountryID" oder so erhält. Wenn überhaupt nötig.

Dann kennst Du alle Tabellennamen a priori, brauchst nichts zu basteln
und kannst alles in einem JOIN abhandeln.


Thomas
--
Jabber-ID: glglgl@amessage.info (keine Email-Adresse!)
Warum Jabber, was ist das und wie geht das?
http://de.wikibooks.org/wiki/Jabber-Kompendium:_Schnelleinst ieg

Re: Select aus eigenen Werten

am 26.04.2007 13:49:31 von Mathias Fiedler

Am Wed, 25 Apr 2007 17:30:06 +0200 schrieb Kai Ruhnau:

> Mathias Fiedler wrote:
>> Am Wed, 25 Apr 2007 13:15:51 +0200 schrieb Kai Ruhnau:
>>
>>> Mathias Fiedler wrote:
>>>> Ich habe eine Tabelle, darin stehen Orte. Ich habe eine weitere Tabelle,
>>>> darin stehen Ländernamen. Jedes Land hat nun eine ID. Diese ID steht in der
>>>> Haupttabelle bei countryID. Für jedes Land gibt es eine Tabelle mit Orten.
>>>> Diese Tabelle setzt sich zusammena us dem Wort "city" und der ID des
>>>> Landes. Deutschland hat in der Ländertabelle die ID 21 also stehen alle
>>>> Orte dazu in der Tabelle city21.
>>> Dein Design ist kaputt.
>>> Ändere das Design in ein normalisiertes und du wirst keine Probleme mit
>>> der Abfrage haben.
>>>
>>> Grüße
>>> Kai
>>
>> Mann oh mann, schon wieder. Mein Design ist nicht kaputt !
>
> Doch, ist es. Auch wenn du immer und immer wieder behauptest, dass es
> das nicht ist. Hättest du die countryID als Spalte einer Tabelle "city"
> wärst du mit einer zusätzlichen JOIN-Bedingung fertig.
>
>> Es ging um die Frage, ob diese Art der Abfrage möglich ist.
>
> Du willst abhängig von den Daten *pro Zeile* eine andere Tabelle joinen.
> Das geht nicht.
>
>> Nichts anderes!
>
> Dass du nicht bereit bist, den Hinweisen auf ein kaputtes
> Datenbankmodell nachzugehen, hast du in der Vergangenheit schon oft
> genug bewiesen. das brauchst du hier nicht wieder breitzutreten.
>
>> Wenn also
>> jemand eine Lösung dafür hat oder auch wenigstens einen Ansatz, wäre ich
>> sehr dankbar.
>
> Ein Ansatz wäre:
>
> SELECT
> CASE countryID
> WHEN 1 THEN city1.feld1
> WHEN 2 THEN city2.feld1
> ...
> WHEN 25 THEN city25.feld1
> END CASE,
> CASE countryID
> WHEN 1 THEN city1.feld2
> WHEN 2 THEN city2.feld2
> ...
> WHEN 25 THEN city25.feld2
> END CASE,
> ...
> FROM country
> LEFT JOIN city1 ON $bedingung
> LEFT JOIN city2 ON $bedingung
> ...
> LEFT JOIN city25 ON $bedingung
> ...
>
> Aber das willst du nicht wirklich.
>
>> Andernfalls bitte nicht unnötig den Traffic erhöhen.
>
> Wie wir dir eigentlich in jedem deiner Threads bisher schonmal gesagt
> hatten: Wenn du keine Antworten willst, dann frage nicht.
> Darauf hast du bisher jedesmal sinngemäß geantwortet, dass du nur die
> Antworten haben möchtest, die du dir aussuchst.
> Anschließend wiesen wir dich jedesmal darauf hin, dass dafür bezahlter
> Support existiert und dass das Usenet eine andere Zielsetzung hat.
>
> Entschuldige bitte, dass ich das gerade einmal abkürze. Aber ich habe
> keine Lust auf unnötigen Traffic.
>
> Grüße
> Kai

Trotzdem danke

Mathias

Re: Select aus eigenen Werten

am 26.04.2007 14:12:00 von Mathias Fiedler

>
> SELECT
> CASE countryID
> WHEN 1 THEN city1.feld1
> WHEN 2 THEN city2.feld1
> ...
> WHEN 25 THEN city25.feld1
> END CASE,

Hallo, ich habe es jetzt anders gelöst. Noch eine Frage zu dem Case. In dem
Statement werden ja alle Bedingungen abgefragt. Kann man auch festlegen,
das die Abfrage nach einem Treffer anhält, also wie in php mit break; ?

Ich habe noch so ein Problem. Ich habe ncoh eine Tabelle Kundenpreise und
eine Tabelle Sonderpreise. Wenn ich also eine Artikel auslese, frage ich ob
es zu diesem Artikel eine Kundenpreis gibt (das ist ein Spezieller Preis,
nur für den angemeldeten Kunden). Es gibt aber auch noch Sonderpreise, die
pro Artikel festgelegt werden und für alle gelten. Wenn es aber einen
Kundenpries gibt, zählt dieser höher als der Sonderpreis.
Bis jetzt habe ich nur den Kundenpreis verglichen.

Sieht so aus:

SELECT a.articleID,a.articleNumber,a.articleName,a.width,a.length,a .code,"
.."coalesce(case when a.cost <> t.cost AND t.custumerNumber =
$custumerNumber then a.cost else t.cost end, a.cost),"
.."a.inventory,a.articleNumberSelf,a.charge,a.sonder,"
.."d.design,c.colorWert,c.colorName,p.pathLong,p.pathShort,s .device,
s.short,st.stil,di.company,de.short,de.description,a.categor ieID,"
.."a.valuation,count(charge) "
.."FROM article as a LEFT JOIN t1_custumercost as t ON a.articleNumberSelf =
t.articleNumberSelf "
.."LEFT JOIN specialcost as sp ON a.articleNumberSelf = sp.articleNumberSelf
"
.."INNER JOIN design as d ON a.designID = d.designID INNER JOIN color as c
ON a.colorID = c.colorID "
.."INNER JOIN path as p ON a.articleNumberSelf = p.articleNumberSelf INNER
JOIN sellingdevice as s ON a.sellingID = s.sellingID "
.."INNER JOIN stil as st ON a.stilID = st.stilID INNER JOIN distributor as
di on a.distributorID = di.distributorID "
.."INNER JOIN description as de ON a.descriptionID = de.descriptionID ";
WHERE a.categorieID = $selectionArticle Group By charge

Die Zeile
coalesce(case when a.cost <> t.cost AND t.custumerNumber = $custumerNumber
then a.cost else t.cost end, a.cost)
macht genau die Auswahl zwischen Normal und Kundenpreis, den ich brauche.
Gibt es einen speziellen Kundenpreis, wird dieser genommen ansonsten der
Normalpreis. In der Tabelle specialcost gibt es nun einen specialcost.
Außerdem wurde diesem Preis auch die articleNumberSelf aus article
zugeordnet um zu wissen, für welchen Artikel der Sonderpreis ist.
Da muß der aber noch in die Abfrage nach dem Sonderpreis rein. Das heist,
gibt es einen Sonderpries, soll der genommen werden, gibt es keinen
Sonderpreis aber einen Kundenpreis, soll dieser verwendet werden, gibt es
weder Sonderpreis noch Kundenpreis, soll der Normalpreis genommen werden.
Wie bekomme ich das hin?

mfg

Mathias

Re: Select aus eigenen Werten

am 26.04.2007 15:30:50 von Claus Reibenstein

Mathias Fiedler schrieb:

>> SELECT
>> CASE countryID
>> WHEN 1 THEN city1.feld1
>> WHEN 2 THEN city2.feld1
>> ...
>> WHEN 25 THEN city25.feld1
>> END CASE,
>
> Hallo, ich habe es jetzt anders gelöst. Noch eine Frage zu dem Case. In dem
> Statement werden ja alle Bedingungen abgefragt.

Unfug. Sie werden nur dann alle abgefragt, wenn nur die letzte oder gar
keine zutrifft. Ansonsten ist beim ersten Treffer Schluss.

Gruß. Claus

Re: Select aus eigenen Werten

am 26.04.2007 21:24:43 von Mathias Fiedler

Am Thu, 26 Apr 2007 15:30:50 +0200 schrieb Claus Reibenstein:

> Mathias Fiedler schrieb:
>
>>> SELECT
>>> CASE countryID
>>> WHEN 1 THEN city1.feld1
>>> WHEN 2 THEN city2.feld1
>>> ...
>>> WHEN 25 THEN city25.feld1
>>> END CASE,
>>
>> Hallo, ich habe es jetzt anders gelöst. Noch eine Frage zu dem Case. In dem
>> Statement werden ja alle Bedingungen abgefragt.
>
> Unfug. Sie werden nur dann alle abgefragt, wenn nur die letzte oder gar
> keine zutrifft. Ansonsten ist beim ersten Treffer Schluss.
>
> Gruß. Claus

Soweit, so gut. Das hab ich jetzt geschnallt. NUn möchtre ich gern zwei
Abfragen in ein Case und meine sql Abfrage bringen. Sieht so aus:

(SELECT a.articleID,a.articleNumber,a.articleName,a.width,a.length,a .code,

coalesce(
case
when a.cost <> t.cost AND t.custumerNumber = 0000007 then t.cost
when sp.specialcost > 0 AND sp.articleNumberSelf = a.articleNumberSelf then
sp.specialcost
else a.cost
end ),

a.inventory,a.articleNumberSelf,a.charge,a.sonder,d.design,c .colorWert,c.colorName,p.pathLong,p.pathShort,s.device,s.sho rt,st.stil,di.company,de.short,de.description,a.categorieID, a.valuation,count(charge)
FROM article as a LEFT JOIN t1_custumercost as t ON a.articleNumberSelf =
t.articleNumberSelf INNER JOIN design as d ON a.designID = d.designID INNER
JOIN color as c ON a.colorID = c.colorID INNER JOIN path as p ON
a.articleNumberSelf = p.articleNumberSelf INNER JOIN sellingdevice as s ON
a.sellingID = s.sellingID INNER JOIN stil as st ON a.stilID = st.stilID
INNER JOIN distributor as di on a.distributorID = di.distributorID INNER
JOIN description as de ON a.descriptionID = de.descriptionID LEFT JOIN
specialcost as sp ON a.articleNumberSelf = sp.articleNumberSelf WHERE
a.categorieID = 19 Group By charge) UNION (SELECT
a.articleID,a.articleNumber,a.articleName,a.width,a.length,a .code,a.cost,a.inventory,a.articleNumberSelf,a.charge,a.sond er,d.design,c.colorWert,c.colorName,p.pathLong,p.pathShort,s .device,s.short,st.stil,di.company,de.short,de.description,a .categorieID,a.valuation,count(charge)
FROM t1_custumerarticle as a LEFT JOIN t1_custumercost as t ON
a.articleNumberSelf = t.articleNumberSelf INNER JOIN design as d ON
a.designID = d.designID INNER JOIN color as c ON a.colorID = c.colorID
INNER JOIN path as p ON a.articleNumberSelf = p.articleNumberSelf INNER
JOIN sellingdevice as s ON a.sellingID = s.sellingID INNER JOIN stil as st
ON a.stilID = st.stilID INNER JOIN distributor as di on a.distributorID =
di.distributorID INNER JOIN description as de ON a.descriptionID =
de.descriptionID WHERE a.categorieID = 19 AND a.custumerNumber = 0000007
Group By charge) ORDER BY charge,valuation,articleName

Ich habe den relevanten Teil freigestellt. Die Abfrage bringt keinen
Fehler. Es wird aber der Preis von sp.specialcost ausgegeben, obwohl in
t.cost ein Wert steht, der die Bedingungen erfüllt.

case
when a.cost <> t.cost AND t.custumerNumber = 0000007 then t.cost
when sp.specialcost > 0 AND sp.articleNumberSelf = a.articleNumberSelf then
sp.specialcost
else a.cost
end

Die erste Abfrage müßte breits einen Treffer geben.
a.cost ist nicht gleich t.cost, t.custumerNumber ist gleich 0000007 aber es
gibt erst beim zweiten when einen Teffer. Wo könnte denn mein Fehler
liegen? Da t.custumerNumber ein String ist habe ich es auch schon mit
t.custumerNumber = '0000007' versucht, bringt aber auch nichts.

mfg

Mathias

Re: Select aus eigenen Werten

am 26.04.2007 21:29:21 von Mathias Fiedler

Hat sich erledigt. Ich hatte nur eine Komma nichts gesetzt. Bin nun doch
froh, das mein Versuch richtig war.

Trotzdem danke

Mathias