Ich möchte gern eine einfache Abfrage machen:
Code:
SELECT
YEAR(V_Dat) yr,
MONTH(V_Dat) mn,
DAY(V_Dat) dy,
SUM(Anteil_I) sm
FROM
rpohis
WHERE
Tank_Nr = 20
GROUP BY
DATE(V_Dat)
ORDER BY
yr DESC,
mn ASC,
dy ASC
Das ganze in einer TUniQuery, in welcher ich die Felder anlegen lassen habe.
Mit meiner
DB auf meinem Entwicklungs-PC werden diese für die Spalten yr, mn und dy als TIntegerField angelegt.
Auf dem Live-System beim Kunden ist statt MariaDB noch eine ältere
MySQL Installation, die ich auch nicht mal eben wechseln kann. Diese scheint für die Datumsfunktionen nun aber LargeInts zurückzugeben, sodass mein Programm dann meckert, dass TLargeField erwartet würden, aber TIntegerField gefunden wurden.
Ich habe bislang keine Möglichkeit gefunden, wie ich in dem SELECT einen bestimmten Ergebnistyp erzwingen kann. CAST() und CONVERT() lassen lediglich die generischen SIGNED und UNSIGNED Tyen zu, die zum selben Problem führen. Einen View kann ich auf dem Live-System aus mir unbekannten Gründen auch nicht erzeugen (die Option zum Anlegen ist unter HeidiSQL ausgegraut) - mit dem hätte ich ja die Möglihckeit die Typen fix zu definieren.
Was könnte ich da noch versuchen?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)