aus nn-Beziehung höchste Version auslesen

Hallo Zusammen!

Ich habe ein Query über zwei Tabellen welches die Zwischentablle order_version mit der Tabelle Version verknüpft

Code:
SELECT t5.uid_local, t6.version
FROM msttypo.tx_mstshop_order_version_id_mm t5, msttypo.tx_mstshop_version t6
WHERE t5.uid_foreign = t6.uid

Das obenstehende Query liefert folgende Resultate:

1 14
1 15
1 All
2 15
3 14
3 All

Ich möchte jetzt aber das das Query nur die Version mit der höchsten t6.uid ausspuckt. Tabelle sollte anschliessend so aussehen:

1 All
2 15
3 All

Wie krieg ich das hin ?

Gruesss

Ruth
 
Hallo Zusammen!

Ich habe ein Query über zwei Tabellen welches die Zwischentablle order_version mit der Tabelle Version verknüpft

Code:
SELECT t5.uid_local, t6.version
FROM msttypo.tx_mstshop_order_version_id_mm t5, msttypo.tx_mstshop_version t6
WHERE t5.uid_foreign = t6.uid

Das obenstehende Query liefert folgende Resultate:

1 14
1 15
1 All
2 15
3 14
3 All

Ich möchte jetzt aber das das Query nur die Version mit der höchsten t6.uid ausspuckt. Tabelle sollte anschliessend so aussehen:

1 All
2 15
3 All

Wie krieg ich das hin ?

Gruesss

Ruth

- So wie ich es verstanden habe, ist "All" *höher* als z.b "15" ?

Gruss
 
Ja das ist so, die Versionstabelle sieht abgespeckt so aus:

1 14
2 15
100 All

- Das Problem wir sein,
a) Der Datenbank beizubringen das der Wert "All" höher als z.b "15"
b) Dies ein Varchar - Feld ist und deshalb 21 nicht "automatisch" grösser als "3" ist..Dies kannst du einfach überprüfen, wenn du ein Ordber by auf diese Attribut machst und dir die Reihenfolge anguckst...


Gruss
 
Das mit dem varchar dem bin ich mir völlig bewusst, dass ich das nicht irgendwie mit max oder sowas hinkriege, das mir die höchste Version ausgegegen wird.

Aber es muss technisch möglich sein die Abfrage so zu schreiben dass mir die Version All zurückgegeben wird, da diese die höchste Versions-ID hat. (Durch die ID kann ich nämlich sehr wohl unterscheiden welches die höchste Version ist).

Nur wie ist immer noch die Frage?
 
Hab jetzt rausgekriegt wie ich die höchste Version erhalte:

Code:
SELECT t6.version
FROM 
(SELECT max(t5.uid) AS uid FROM msttypo.tx_mstshop_order_version_id_mm t4 LEFT JOIN msttypo.tx_mstshop_version t5 ON t4.uid_foreign = t5.uid GROUP BY t4.uid_local) AS maximal
LEFT JOIN msttypo.tx_mstshop_version t6
ON t6.uid = maximal.uid

Nur leider weiss ich noch nicht wie ich die Abfrage in mein Normales Query reinkriege. Sollte alles in einem Query haben, weil das ganze eine View ist.

Code:
select 
t1.uid AS id, 
t2.tx_mstshop_order_company AS besteller, 
t2.name AS bestname, 
t2.tx_mstshop_product AS produkt, 
t3.typ AS typ,
//Stelle wo die Version integriert werden sollte
t1.own_order_number AS bestnr,
t1.email AS email, 
t1.email_cc AS email_cc, 
t1.tstamp AS datum, 
t1.object_name AS lizenzname, 
t1.country_city_plz AS lizenzort, 
c2.company AS kundenname,
ct2.surname AS kundenkontakt,
c2.address AS kundenadresse,
c2.plz AS kundenplz,
c2.city AS kundenort,
t3.lizenz AS lizenz,
c1.company AS firma,
ct1.surname AS kontakt,
c1.address AS adresse,
c1.plz AS plz,
c1.city AS ort,
ct2.email AS email_best,
c1.url AS url, 
t3.aexp AS AEXP,
t3.alm AS ALM,
t3.ascii AS ASCII,
t3.clk AS CLK,
t3.dev1 AS DEV1,
t3.dev2 AS DEV2,
t3.dms AS DMS,
t3.dp AS DP,
t3.ge AS GE,
t3.hda AS HDA,
t3.log AS LOG,
t3.malm AS MALM,
t3.opc AS OPC,
t3.pdbs AS PDBS,
t3.pet AS PET,
t3.petc AS PETC,
t3.prt AS PRT,
t3.revalm AS REVALM,
t3.sdrv AS SDRV,
t3.sbus AS SBUS,
t3.tcp AS TCP,
t3.channel AS CHANNEL,
t3.ftp AS FTP,
t3.http AS HTTP,
t3.opt1 AS OPT1,
t3.opt2 AS OPT2,
t3.opt3 AS OPT3,
t3.opt4 AS OPT4,
t3.opt5 AS OPT5,
t3.opt6 AS OPT6,
t3.opt7 AS OPT7,
t3.opt8 AS OPT8,
t3.opt9 AS OPT9,
t3.opt10 AS OPT10,
t3.opt11 AS OPT11,
t3.opt12 AS OPT12,
t3.opt13 AS OPT13,
t3.opt14 AS OPT14,
t3.opt15 AS OPT15,
t3.opt16 AS OPT16,
t3.opt17 AS OPT17,
t3.opt18 AS OPT18,
t3.opt19 AS OPT19,
t3.opt20 AS OPT20,
t3.opt21 AS OPT21,
t3.opt22 AS OPT22,
t3.opt23 AS OPT23,
t3.opt24 AS OPT24,
t3.opt25 AS OPT25,
t3.opt26 AS OPT26,
t3.opt27 AS OPT27,
t3.opt28 AS OPT28,
t3.opt29 AS OPT29,
t1.dongle_date AS Dongle_Datum,
t1.dongle_number AS Dongle_ID,
t3.opt32 AS OPT32,
t1.status As status,
t1.exp_date AS ExpDate, 
t1.status AS KeyGen,
t1.update_orderid AS updat,
t1.keynr AS keynr
FROM
msttypo.tx_mstshop_order t1 
LEFT JOIN msttypo.fe_users t2 ON t1.cruser_id = t2.uid
LEFT JOIN msttypo.tx_mstshop_keygen t3 ON t1.keygen_id= t3.uid
LEFT JOIN msttypo.tx_mstshop_company AS c1 ON t1.systemintegrator_id = c1.uid 
LEFT JOIN msttypo.tx_mstshop_company AS c2 ON t1.licenceholder_id = c2.uid 
LEFT JOIN msttypo.tx_mstshop_contact AS ct1 ON t1.system_contact_id = ct1.uid 
LEFT JOIN msttypo.tx_mstshop_contact AS ct2 ON t1.holder_contact_id = ct2.uid

Kann mir da jemand helfen ?

Gruess & Danke

Ruth
 
Zuletzt bearbeitet:
Zurück