BlueFish: SQL: Max-Wert tabellenübergreifend ermitteln

Beitrag lesen

Hallo!

Hmm, also mit Deinem Vorschlag mit dem SELECT AS tmp bin ich jetzt zwar zu einer Lösung gekommen, aber dass man das so machen sollte, glaube ich wieder weniger ... das ist ja grauenhaft:

  
SELECT distinct pc.model as model FROM pc WHERE pc.price >= (  
  SELECT MAX(tmp.price) FROM (  
    SELECT pc.price, pc.model FROM pc  
    UNION ALL  
    SELECT laptop.price, laptop.model FROM laptop  
    UNION ALL  
    SELECT printer.price, printer.model FROM printer  
  ) AS tmp  
)  
UNION ALL  
SELECT distinct laptop.model as model FROM laptop WHERE laptop.price >= (  
  SELECT MAX(tmp.price) FROM (  
    SELECT pc.price, pc.model FROM pc  
    UNION ALL  
    SELECT laptop.price, laptop.model FROM laptop  
    UNION ALL  
    SELECT printer.price, printer.model FROM printer  
  ) AS tmp  
)  
UNION ALL  
SELECT distinct printer.model as model FROM printer WHERE printer.price >= (  
  SELECT MAX(tmp.price) FROM (  
    SELECT pc.price, pc.model FROM pc  
    UNION ALL  
    SELECT laptop.price, laptop.model FROM laptop  
    UNION ALL  
    SELECT printer.price, printer.model FROM printer  
  ) AS tmp  
)  

Es kommt zwar mit meinen Testdaten das Richtige heraus ... aber ich glaub', ich vergess das mal lieber ganz schnell wieder.

Grüße
BlueFish