k3nguruh
Erfahrenes Mitglied
Hallo,
Ich weiss nicht genau wie ich es beschreiben soll, deshalb erstmal der Code. Vll. kann man anhand der Abfrage bereits erkennen was ich möchte. Der SELECT funktioniert jedenfalls wie gewünscht.
id = int, Primary, AUTO_INCREMENT
code = varchar (irgendein Zufallscode)
fahrzeugname = varchar (zum Bsp.: VW Golf)
nutzung = varchar (zum Bsp.: Privat oder Firma oder ....)
vondatum = datetime (von wann wurde benutzt)
Der Query etwas abgespeckt:
Als Ergebnis soll dann sowas rauskommen bzw. kommt auch raus:
Wenn ich aber die WHERE Bedingung im äusseren SELECT weg lasse, um mir alle Einträge anzuschauen, dauert die Abfrage ewig.
Gibt es vll eine bessere Lösung?
Ich weiss nicht genau wie ich es beschreiben soll, deshalb erstmal der Code. Vll. kann man anhand der Abfrage bereits erkennen was ich möchte. Der SELECT funktioniert jedenfalls wie gewünscht.
id = int, Primary, AUTO_INCREMENT
code = varchar (irgendein Zufallscode)
fahrzeugname = varchar (zum Bsp.: VW Golf)
nutzung = varchar (zum Bsp.: Privat oder Firma oder ....)
vondatum = datetime (von wann wurde benutzt)
Der Query etwas abgespeckt:
SQL:
SELECT
ed.id,
ed.fahrzeugname,
....
CONCAT(
LPAD(
(
SELECT
COUNT(*)
FROM
tbl_fahrzeuge AS sub
WHERE
sub.vondatumzeit <= ed.vondatumzeit
AND YEAR(sub.vondatumzeit) = YEAR(ed.vondatumzeit)
),
3,
0
),
'/',
YEAR(ed.vondatumzeit),
' ',
'(',
UPPER(
LEFT(ed.nutzung, 1)
),
')'
) AS lfdnr
FROM
tbl_fahrzeuge AS ed
WHERE
ed.id = '1'
AND ed.code = '....'
Als Ergebnis soll dann sowas rauskommen bzw. kommt auch raus:
id "1" hat die lfdnr "004/2011 (P)"
Wenn ich aber die WHERE Bedingung im äusseren SELECT weg lasse, um mir alle Einträge anzuschauen, dauert die Abfrage ewig.
Gibt es vll eine bessere Lösung?