resterampe
Mitglied
Hallo zusammen,
ich habe 3 Tabellen die über LEFT Joins mit einander verknüpft sind.
Diese Abfrage und liefert mir alle möglichen Ergebnisse zurück.
Zur Struktur:
Die oben erwähnte Abfrage ist folgende:
Er soll als VIEW angelegt werden (was auch nicht das Problem ist)
Nun möchte ich aber für jede Kombination von `pmp`.`FID_Maschinen` und `pmp`.`FID_Produkte` nur den jüngsten Wert von `pw`.`TimeStamp` als Ergebnis bekommen.
Meine bisherigen Versuche mit GROUP BY mit und ohne HAVING, DISTINCT und subselects schlugen jedoch alle fehl.
Ich bin für jeden Denkanstoß dankbar.
Gruß
Julian
ich habe 3 Tabellen die über LEFT Joins mit einander verknüpft sind.
Diese Abfrage und liefert mir alle möglichen Ergebnisse zurück.
Zur Struktur:
SQL:
-- phpMyAdmin SQL Dump
-- version 2.11.7
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Erstellungszeit: 15. Januar 2009 um 11:22
-- Server Version: 5.0.51
-- PHP-Version: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Datenbank: `parameter`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `parameterwerte`
--
CREATE TABLE IF NOT EXISTS `parameterwerte` (
`ID_Werte` int(10) NOT NULL auto_increment,
`TimeStamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
`FID_User` int(10) NOT NULL,
`Bemerkung` text NOT NULL,
`W_001` text COMMENT 'Sollwert',
`W_001min` text COMMENT 'Minimalwert',
`W_001max` text COMMENT 'Maximalwert',
`W_002` text COMMENT 'Sollwert',
`W_002min` text COMMENT 'Minimalwert',
`W_002max` text COMMENT 'Maximalwert',
`W_003` text COMMENT 'Sollwert',
`W_003min` text COMMENT 'Minimalwert',
`W_003max` text COMMENT 'Maximalwert',
`W_004` text COMMENT 'Sollwert',
`W_004min` text COMMENT 'Minimalwert',
`W_004max` text COMMENT 'Maximalwert',
`W_005` text COMMENT 'Sollwert',
`W_005min` text COMMENT 'Minimalwert',
`W_005max` text COMMENT 'Maximalwert',
`W_006` text COMMENT 'Sollwert',
`W_006min` text COMMENT 'Minimalwert',
`W_006max` text COMMENT 'Maximalwert',
`W_007` text COMMENT 'Sollwert',
`W_007min` text COMMENT 'Minimalwert',
`W_007max` text COMMENT 'Maximalwert',
`W_008` text COMMENT 'Sollwert',
`W_008min` text COMMENT 'Minimalwert',
`W_008max` text COMMENT 'Maximalwert',
`W_009` text COMMENT 'Sollwert',
`W_009min` text COMMENT 'Minimalwert',
`W_009max` text COMMENT 'Maximalwert',
`W_010` text COMMENT 'Sollwert',
`W_010min` text COMMENT 'Minimalwert',
`W_010max` text COMMENT 'Maximalwert',
`W_011` text COMMENT 'Sollwert',
`W_011min` text COMMENT 'Minimalwert',
`W_011max` text COMMENT 'Maximalwert',
`W_012` text COMMENT 'Sollwert',
`W_012min` text COMMENT 'Minimalwert',
`W_012max` text COMMENT 'Maximalwert',
`W_013` text COMMENT 'Sollwert',
`W_013min` text COMMENT 'Minimalwert',
`W_013max` text COMMENT 'Maximalwert',
`W_014` text COMMENT 'Sollwert',
`W_014min` text COMMENT 'Minimalwert',
`W_014max` text COMMENT 'Maximalwert',
`W_015` text COMMENT 'Sollwert',
`W_015min` text COMMENT 'Minimalwert',
`W_015max` text COMMENT 'Maximalwert',
`W_016` text COMMENT 'Sollwert',
`W_016min` text COMMENT 'Minimalwert',
`W_016max` text COMMENT 'Maximalwert',
`W_017` text COMMENT 'Sollwert',
`W_017min` text COMMENT 'Minimalwert',
`W_017max` text COMMENT 'Maximalwert',
`W_018` text COMMENT 'Sollwert',
`W_018min` text COMMENT 'Minimalwert',
`W_018max` text COMMENT 'Maximalwert',
`W_019` text COMMENT 'Sollwert',
`W_019min` text COMMENT 'Minimalwert',
`W_019max` text COMMENT 'Maximalwert',
`W_020` text COMMENT 'Sollwert',
`W_020min` text COMMENT 'Minimalwert',
`W_020max` text COMMENT 'Maximalwert',
`W_021` text COMMENT 'Sollwert',
`W_021min` text COMMENT 'Minimalwert',
`W_021max` text COMMENT 'Maximalwert',
`W_022` text COMMENT 'Sollwert',
`W_022min` text COMMENT 'Minimalwert',
`W_022max` text COMMENT 'Maximalwert',
`W_023` text COMMENT 'Sollwert',
`W_023min` text COMMENT 'Minimalwert',
`W_023max` text COMMENT 'Maximalwert',
`W_024` text COMMENT 'Sollwert',
`W_024min` text COMMENT 'Minimalwert',
`W_024max` text COMMENT 'Maximalwert',
`W_025` text COMMENT 'Sollwert',
`W_025min` text COMMENT 'Minimalwert',
`W_025max` text COMMENT 'Maximalwert',
`W_026` text COMMENT 'Sollwert',
`W_026min` text COMMENT 'Minimalwert',
`W_026max` text COMMENT 'Maximalwert',
`W_027` text COMMENT 'Sollwert',
`W_027min` text COMMENT 'Minimalwert',
`W_027max` text COMMENT 'Maximalwert',
`W_028` text COMMENT 'Sollwert',
`W_028min` text COMMENT 'Minimalwert',
`W_028max` text COMMENT 'Maximalwert',
`W_029` text COMMENT 'Sollwert',
`W_029min` text COMMENT 'Minimalwert',
`W_029max` text COMMENT 'Maximalwert',
`W_030` text COMMENT 'Sollwert',
`W_030min` text COMMENT 'Minimalwert',
`W_030max` text COMMENT 'Maximalwert',
`W_031` text COMMENT 'Sollwert',
`W_031min` text COMMENT 'Minimalwert',
`W_031max` text COMMENT 'Maximalwert',
`W_032` text COMMENT 'Sollwert',
`W_032min` text COMMENT 'Minimalwert',
`W_032max` text COMMENT 'Maximalwert',
`W_033` text COMMENT 'Sollwert',
`W_033min` text COMMENT 'Minimalwert',
`W_033max` text COMMENT 'Maximalwert',
`W_034` text COMMENT 'Sollwert',
`W_034min` text COMMENT 'Minimalwert',
`W_034max` text COMMENT 'Maximalwert',
`W_035` text COMMENT 'Sollwert',
`W_035min` text COMMENT 'Minimalwert',
`W_035max` text COMMENT 'Maximalwert',
`W_036` text COMMENT 'Sollwert',
`W_036min` text COMMENT 'Minimalwert',
`W_036max` text COMMENT 'Maximalwert',
`W_037` text COMMENT 'Sollwert',
`W_037min` text COMMENT 'Minimalwert',
`W_037max` text COMMENT 'Maximalwert',
`W_038` text COMMENT 'Sollwert',
`W_038min` text COMMENT 'Minimalwert',
`W_038max` text COMMENT 'Maximalwert',
`W_039` text COMMENT 'Sollwert',
`W_039min` text COMMENT 'Minimalwert',
`W_039max` text COMMENT 'Maximalwert',
`W_040` text COMMENT 'Sollwert',
`W_040min` text COMMENT 'Minimalwert',
`W_040max` text COMMENT 'Maximalwert',
`W_041` text COMMENT 'Sollwert',
`W_041min` text COMMENT 'Minimalwert',
`W_041max` text COMMENT 'Maximalwert',
`W_042` text COMMENT 'Sollwert',
`W_042min` text COMMENT 'Minimalwert',
`W_042max` text COMMENT 'Maximalwert',
`W_043` text COMMENT 'Sollwert',
`W_043min` text COMMENT 'Minimalwert',
`W_043max` text COMMENT 'Maximalwert',
`W_044` text COMMENT 'Sollwert',
`W_044min` text COMMENT 'Minimalwert',
`W_044max` text COMMENT 'Maximalwert',
`W_045` text COMMENT 'Sollwert',
`W_045min` text COMMENT 'Minimalwert',
`W_045max` text COMMENT 'Maximalwert',
`W_046` text COMMENT 'Sollwert',
`W_046min` text COMMENT 'Minimalwert',
`W_046max` text COMMENT 'Maximalwert',
`W_047` text COMMENT 'Sollwert',
`W_047min` text COMMENT 'Minimalwert',
`W_047max` text COMMENT 'Maximalwert',
`W_048` text COMMENT 'Sollwert',
`W_048min` text COMMENT 'Minimalwert',
`W_048max` text COMMENT 'Maximalwert',
`W_049` text COMMENT 'Sollwert',
`W_049min` text COMMENT 'Minimalwert',
`W_049max` text COMMENT 'Maximalwert',
`W_050` text,
`W_050min` text,
`W_050max` text,
`W_051` text,
`W_051min` text,
`W_051max` text,
`W_052` text,
`W_052min` text,
`W_052max` text,
`W_053` text,
`W_053min` text,
`W_053max` text,
`W_054` text,
`W_054min` text,
`W_054max` text,
`W_055` text,
`W_055min` text,
`W_055max` text,
`W_056` text,
`W_056min` text,
`W_056max` text,
`W_057` text,
`W_057min` text,
`W_057max` text,
`W_058` text,
`W_058min` text,
`W_058max` text,
`W_059` text,
`W_059min` text,
`W_059max` text,
`W_060` text,
`W_060min` text,
`W_060max` text,
`W_061` text,
`W_061min` text,
`W_061max` text,
`W_062` text,
`W_062min` text,
`W_062max` text,
`W_063` text,
`W_063min` text,
`W_063max` text,
`W_064` text,
`W_064min` text,
`W_064max` text,
`W_065` text,
`W_065min` text,
`W_065max` text,
`W_066` text,
`W_066min` text,
`W_066max` text,
`W_067` text,
`W_067min` text,
`W_067max` text,
`W_068` text,
`W_068min` text,
`W_068max` text,
`W_069` text,
`W_069min` text,
`W_069max` text,
`W_070` text,
`W_070min` text,
`W_070max` text,
`W_071` text,
`W_071min` text,
`W_071max` text,
`W_072` text,
`W_072min` text,
`W_072max` text,
`W_073` text,
`W_073min` text,
`W_073max` text,
`W_074` text,
`W_074min` text,
`W_074max` text,
`W_075` text,
`W_075min` text,
`W_075max` text,
`W_076` text,
`W_076min` text,
`W_076max` text,
`W_077` text,
`W_077min` text,
`W_077max` text,
`W_078` text,
`W_078min` text,
`W_078max` text,
`W_079` text,
`W_079min` text,
`W_079max` text,
`W_080` text,
`W_080min` text,
`W_080max` text,
`W_081` text,
`W_081min` text,
`W_081max` text,
`W_082` text,
`W_082min` text,
`W_082max` text,
`W_083` text,
`W_083min` text,
`W_083max` text,
`W_084` text,
`W_084min` text,
`W_084max` text,
`W_085` text,
`W_085min` text,
`W_085max` text,
`W_086` text,
`W_086min` text,
`W_086max` text,
`W_087` text,
`W_087min` text,
`W_087max` text,
`W_088` text,
`W_088min` text,
`W_088max` text,
`W_089` text,
`W_089min` text,
`W_089max` text,
`W_090` text,
`W_090min` text,
`W_090max` text,
`W_091` text,
`W_091min` text,
`W_091max` text,
`W_092` text,
`W_092min` text,
`W_092max` text,
`W_093` text,
`W_093min` text,
`W_093max` text,
`W_094` text,
`W_094min` text,
`W_094max` text,
`W_095` text,
`W_095min` text,
`W_095max` text,
`W_096` text,
`W_096min` text,
`W_096max` text,
`W_097` text,
`W_097min` text,
`W_097max` text,
`W_098` text,
`W_098min` text,
`W_098max` text,
`W_099` text,
`W_099min` text,
`W_099max` text,
`W_100` text,
`W_100min` text,
`W_100max` text,
PRIMARY KEY (`ID_Werte`),
KEY `TimeStamp` (`TimeStamp`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2106 ;
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `produkte`
--
CREATE TABLE IF NOT EXISTS `produkte` (
`ID_Produkte` int(10) NOT NULL auto_increment,
`Produktname` varchar(255) NOT NULL,
`Produktnummer` int(7) NOT NULL,
`Sollgewicht` int(10) default NULL COMMENT 'in Gramm',
PRIMARY KEY (`ID_Produkte`),
UNIQUE KEY `Produktnummer` (`Produktnummer`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Auflistung aller Produkte' AUTO_INCREMENT=76 ;
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `produkte_maschinen_parameterwerte`
--
CREATE TABLE IF NOT EXISTS `produkte_maschinen_parameterwerte` (
`ID_P-M-PW` int(10) NOT NULL auto_increment,
`FID_Produkte` int(10) NOT NULL,
`FID_Maschinen` int(10) NOT NULL,
`FID_Parameterwerte` int(10) NOT NULL,
PRIMARY KEY (`ID_P-M-PW`),
KEY `FID_Produkte` (`FID_Produkte`),
KEY `FID_Maschinen` (`FID_Maschinen`),
KEY `FID_Parameterwerte` (`FID_Parameterwerte`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Ordnet Parameterwerte über Maschinen Produkten zu' AUTO_INCREMENT=2124 ;
Die oben erwähnte Abfrage ist folgende:
Er soll als VIEW angelegt werden (was auch nicht das Problem ist)
SQL:
SELECT `pmp`.`FID_Maschinen`, `pmp`.`FID_Produkte`, `p`.`Produktnummer`, `pw`.`TimeStamp`, `pw`.`W_001min`, `pw`.`W_001max`, `pw`.`W_002min`, `pw`.`W_002max`, `pw`.`W_003min`, `pw`.`W_003max`, `pw`.`W_004min`, `pw`.`W_004max`, `pw`.`W_005min`, `pw`.`W_005max`, `pw`.`W_006min`, `pw`.`W_006max`, `pw`.`W_007min`, `pw`.`W_007max`, `pw`.`W_008min`, `pw`.`W_008max`, `pw`.`W_009min`, `pw`.`W_009max`, `pw`.`W_010min`, `pw`.`W_010max`, `pw`.`W_011min`, `pw`.`W_011max`, `pw`.`W_012min`, `pw`.`W_012max`, `pw`.`W_013min`, `pw`.`W_013max`, `pw`.`W_014min`, `pw`.`W_014max`, `pw`.`W_015min`, `pw`.`W_015max`, `pw`.`W_016min`, `pw`.`W_016max`, `pw`.`W_017min`, `pw`.`W_017max`, `pw`.`W_018min`, `pw`.`W_018max`, `pw`.`W_019min`, `pw`.`W_019max`, `pw`.`W_020min`, `pw`.`W_020max`, `pw`.`W_021min`, `pw`.`W_021max`, `pw`.`W_022min`, `pw`.`W_022max`, `pw`.`W_023min`, `pw`.`W_023max`, `pw`.`W_024min`, `pw`.`W_024max`, `pw`.`W_025min`, `pw`.`W_025max`, `pw`.`W_026min`, `pw`.`W_026max`, `pw`.`W_027min`, `pw`.`W_027max`, `pw`.`W_028min`, `pw`.`W_028max`, `pw`.`W_029min`, `pw`.`W_029max`, `pw`.`W_030min`, `pw`.`W_030max`, `pw`.`W_031min`, `pw`.`W_031max`, `pw`.`W_032min`, `pw`.`W_032max`, `pw`.`W_033min`, `pw`.`W_033max`, `pw`.`W_034min`, `pw`.`W_034max`, `pw`.`W_035min`, `pw`.`W_035max`, `pw`.`W_036min`, `pw`.`W_036max`, `pw`.`W_037min`, `pw`.`W_037max`, `pw`.`W_038min`, `pw`.`W_038max`, `pw`.`W_039min`, `pw`.`W_039max`, `pw`.`W_040min`, `pw`.`W_040max`
FROM `produkte_maschinen_parameterwerte` AS `pmp`
LEFT JOIN `produkte` AS `p` ON (`p`.`ID_Produkte` = `pmp`.`FID_Produkte`)
LEFT JOIN `parameterwerte` AS `pw` ON (`pmp`.`FID_Parameterwerte` = `pw`.`ID_Werte`)
ORDER BY `pmp`.`FID_Maschinen` ASC, `p`.`Produktnummer` ASC, `pw`.`TimeStamp` DESC
Nun möchte ich aber für jede Kombination von `pmp`.`FID_Maschinen` und `pmp`.`FID_Produkte` nur den jüngsten Wert von `pw`.`TimeStamp` als Ergebnis bekommen.
Meine bisherigen Versuche mit GROUP BY mit und ohne HAVING, DISTINCT und subselects schlugen jedoch alle fehl.
Ich bin für jeden Denkanstoß dankbar.
Gruß
Julian
Zuletzt bearbeitet von einem Moderator: