MySQL Forums
Forum List  »  German

Problem mit GREATEST/LEAST
Posted by: Hans Meier
Date: March 02, 2016 07:45AM

Hallo,
nun endlich nach einer langen Odyssee bin ich hier gelandet. Na da bin ich mal gespannt, ob sich hier eine Lösung finden lässt.

Ich suche nach einer Lösung bei einer SELECT GREATEST und SELECT LEAST Abfrage, die zwar funktioniert, aber noch nicht perfekt.
Vorweg: Ich habe keinerlei Fachwissen und sehr wenig Englischkenntnisse. Ich bin nur ein Endnutzer.

Es geht um das Ermitteln eines größten und kleinsten Zahlenwert in einer row.
Das ganze funktioniert soweit einwandfrei, wenn in der Abfrage keine columnnames angegeben sind, die nicht existieren.
Nun suche ich nach einer Lösung, in der Abfrage zu checken, ob eine column überhaupt vorhanden ist.
Derzeit killt es die Abfrage, wenn eine column in der Abfrage vorhanden ist, die nicht existiert.

Vorweg: Die Tabellenstruktur ist so genau richtig. Die Tabelle ist noch für andere
Frontend-Darstellungen mit höherer Priorität in Benutzung und für diese so strukturiert.

Die Tabelle (stark gekürzt, nur ein Ausschnitt, normal bis über 100 columns):
-----------------------------------------------
ID Land 1990 1991 1992 1993
01 DEBY 5249 5256 2541 2575
02 DEBE 8518 4754 4585 9518
03 DEHH 3676 9925 4711 9349
04 DEBB 4288 2578 6939 7612
-----------------------------------------------
Als columname Jahreszahlen.
Als rows die Zahlen für ein Bundesland.

Der Befehl (stark gekürzt, normal über 100 columnnames/Jahre):
-----------------------------------------------
$dbquery = "SELECT LEAST(`1980`, `1981`, `1982`, `1983`, `1984`, `1985`, `1986`, `1987`, `1988`, `1989`, `1990`, `1991`, `1992`, `1993`, `1994`, `1995`, `1996`, `1997`, `1998`, `1999` ) AS least FROM table1999 WHERE land = 'be'";

$dbresult = mysqli_query($dbconnect, $dbquery);

$min = array();

while($row = mysqli_fetch_assoc($dbresult))
{
$min = $row[least];
}

echo $min;
-----------------------------------------------
Selbes für GREATEST.

Steht nun im Abfrage-Befehl ein columnname, der in der database-table nicht existiert, ist das result "Array". Sind nur columnnames erwähnt, die auch existieren funktioniert alles einwandfrei.
Es muss also entweder der GREATEST/LEAST Befehl non-exist tablecells ignorieren, oder es benötigt einen non-exist-Check für jeden columnname..

Es gibt im Projekt verschiedene Tabellen, deren column-Anzahl unterschiedlich ist. Es soll aber nur einen Abfrage-Befehl für alle geben (nur eine PHP-Calc-Basesite). (range 1900 - 2050).

Options: ReplyQuote


Subject
Views
Written By
Posted
Problem mit GREATEST/LEAST
1213
March 02, 2016 07:45AM
586
April 03, 2016 02:52AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.