Ich habe eine MySQL-Tabelle:Wie funktioniert das Pivotieren mit MySQL?
I-Ausgang will etwas weiter unten wie (eine Art Schwenk), den Wert im Stift Bleistift und Klebstoff Spalte aus dem letzten Zeitstempel aufgefüllt werden muss.
Ich habe eine MySQL-Tabelle:Wie funktioniert das Pivotieren mit MySQL?
I-Ausgang will etwas weiter unten wie (eine Art Schwenk), den Wert im Stift Bleistift und Klebstoff Spalte aus dem letzten Zeitstempel aufgefüllt werden muss.
Sie können Ihr Ergebnis erzielen, indem eine Dreh einer Unterabfrage zu tun, die für jede Category
die neuesten Datensätze identifiziert - Product
Gruppe.
SELECT t1.Category,
MAX(CASE WHEN t1.Product = 'pen' THEN CONCAT(t1.Flag, '(productid-', t1.Product_ID, ')') ELSE NULL END) AS Pen,
MAX(CASE WHEN t1.Product = 'pencil' THEN CONCAT(t1.Flag, '(productid-', t1.Product_ID, ')') ELSE NULL END) AS Pencil,
MAX(CASE WHEN t1.Product = 'glue' THEN CONCAT(t1.Flag, '(productid-', t1.Product_ID, ')') ELSE NULL END) AS Glue
FROM yourTable t1
INNER JOIN
(
SELECT Category, Product, MAX(timestamp) AS timestamp
FROM yourTable
GROUP BY Category, Product
) t2
ON t1.Category = t2.Category AND
t1.Product = t2.Product AND
t1.timestamp = t2.timestamp
GROUP BY t1.Category
unter Folgen Sie dem Link für eine laufende Demo: Diese
erhalten Große Antwort !!! – Blank
Thankyou Tim so viel ... es hat für mich gearbeitet .u hat meinen Tag gerettet – user2462471
Versuchen:
select
Category,
max(case when Product = 'pen' then concat(`Flag`, '(productid-', Product_ID, ')') else null end) as `Pen`,
max(case when Product = 'pencil' then concat(`Flag`, '(productid-', Product_ID, ')') else null end) as `Pencil`,
max(case when Product = 'glue' then concat(`Flag`, '(productid-', Product_ID, ')') else null end) as `Glue`
from (
select t1.*
from yourtable t1
join (
select Product, Category, max(`timestamp`) as `timestamp`
from yourtable
group by Product, Category
) t2 on t1.Product = t2.Product and t1.`timestamp` = t2.`timestamp` and t1.Category = t2.Category
) t
group by Category
Danke für die schnelle Antwort, das hat auch für mich funktioniert. Danke so viel :) – user2462471
zeigen uns, was Sie –
versucht, habe ich diese Abfrage versucht: wählen Kategorie, max (wenn ('Produkt' = 'Stift', Markierung, Null)) als 'Stift', max (if ('Produkt' = 'Stift', Markierung, Null)) als 'Bleistift', max (if (' product' = 'Stift') , flag, null)) als 'Glue' von Product_Table Dies gibt mir die Ausgabe, aber ich bin mir nicht sicher, wie Sie den Flag-Wert für den neuesten Zeitstempel – user2462471