SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden. |
 |
|

09-11-2004, 13:34
|
mickey
Junior Member
|
|
Registriert seit: Mar 2002
Beiträge: 152
|
|
PHP-Code:
SELECT AVG( admin_AuftragStatusLog.STATUS ) AS `LastStatus`
FROM admin_AuftragLst
INNER JOIN admin_AuftragStatusLog ON admin_AuftragLst.AuftrLstID = admin_AuftragStatusLog.AuftrLstID
GROUP BY admin_AuftragLst.AuftrUEBID
als gegentest geht ohne probleme.
zum testen:
PHP-Code:
CREATE TABLE `admin_AuftragStatusLog` (
`AuftrLogID` int(10) NOT NULL auto_increment,
`AuftrLstID` int(10) unsigned NOT NULL default '0',
`status` smallint(4) unsigned NOT NULL default '0',
`date_add` timestamp(14) NOT NULL,
`user_add` mediumint(8) NOT NULL default '0',
PRIMARY KEY (`AuftrLogID`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;
--
-- Daten für Tabelle `admin_AuftragStatusLog`
--
INSERT INTO `admin_AuftragStatusLog` VALUES (1, 1, 255, '20041109115957', 3);
INSERT INTO `admin_AuftragStatusLog` VALUES (0, 2, 230, '20041109122210', 3);
INSERT INTO `admin_AuftragStatusLog` VALUES (3, 3, 255, '20041109120000', 3);
INSERT INTO `admin_AuftragStatusLog` VALUES (4, 2, 250, '20041109122234', 3);
CREATE TABLE `admin_AuftragLst` (
`AuftrLstID` int(10) NOT NULL auto_increment,
`AuftrUEBID` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`AuftrLstID`)
) TYPE=MyISAM AUTO_INCREMENT=4 ;
--
-- Daten für Tabelle `admin_AuftragLst`
--
INSERT INTO `admin_AuftragLst` VALUES (1, 1);
INSERT INTO `admin_AuftragLst` VALUES (2, 1);
INSERT INTO `admin_AuftragLst` VALUES (3, 2);
__________________
bei fragen immer
windows - pc: Start -> Ausführen -> cmd (command) - format c:
linux : lass es , es hat sicher einen sinn so
--
php-forum.at
>>>>dont ask me why<<<<
|

09-11-2004, 13:46
|
asp2php
Banned
|
|
Registriert seit: Feb 2004
Beiträge: 11.745
|
|
Hm... irgendwie akzeptiert mySQL das Argument von AVG trotz CAST nicht. Lösch mal alle überflüssigen Leerzeichen, vielleicht liegt's daran 
oder:
- mal ohne AVG probieren. Funz?
- wie sieht EXPLAIN aus?
|

09-11-2004, 14:13
|
mickey
Junior Member
|
|
Registriert seit: Mar 2002
Beiträge: 152
|
|
ohne AVg geht ohne probleme.
sobald SUM oder AVG dabei ist spinnt es.
bei explain
PHP-Code:
EXPLAIN SELECT AVG( Cast( TRIM(
LEADING MAX( admin_AuftragStatusLog.date_add )
FROM MAX( concat( admin_AuftragStatusLog.date_add, admin_AuftragStatusLog.status ) ) ) AS SIGNED ) )
AS `LastStatus`
FROM admin_AuftragLst
INNER JOIN admin_AuftragStatusLog
ON admin_AuftragLst.AuftrLstID = admin_AuftragStatusLog.AuftrLstID
GROUP BY admin_AuftragLst.AuftrUEBID
#1111 - Invalid use of group function
mysql> EXPLAIN SELECT Cast( TRIM( LEADING
MAX( admin_AuftragStatusLog.date_add ) FROM
MAX( concat( admin_AuftragStatusLog.date_add,
admin_AuftragStatusLog.status ))) AS SIGNED )
AS `LastStatus` FROM admin_AuftragLst INNER JOIN
admin_AuftragStatusLog ON
admin_AuftragLst.AuftrLstID = admin_AuftragStatusLog.AuftrLstID
GROUP BY admin_AuftragLst.AuftrUEBID ;
+------------------------+------+---------------+------+---------+------+------+---------------------------------+
| table | type | possible_keys | key | key_len | ref | rows | Extra |
+------------------------+------+---------------+------+---------+------+------+---------------------------------+
| admin_AuftragLst | ALL | PRIMARY | NULL | NULL | NULL | 3 | Using temporary; Using filesort |
| admin_AuftragStatusLog | ALL | NULL | NULL | NULL | NULL | 4 | Using where |
+------------------------+------+---------------+------+---------+------+------+---------------------------------+
2 rows in set (0.00 sec)
__________________
bei fragen immer
windows - pc: Start -> Ausführen -> cmd (command) - format c:
linux : lass es , es hat sicher einen sinn so
--
php-forum.at
>>>>dont ask me why<<<<
Geändert von asp2php (09-11-2004 um 14:17 Uhr)
|

09-11-2004, 14:18
|
asp2php
Banned
|
|
Registriert seit: Feb 2004
Beiträge: 11.745
|
|
was ist mit Leerzeichen? Warum hast du so viele drin (vor und nach Klammern)?
|

09-11-2004, 14:27
|
mickey
Junior Member
|
|
Registriert seit: Mar 2002
Beiträge: 152
|
|
naja so viele leerzeichen sind es nicht,
aber geht trozdem nicht.
PHP-Code:
EXPLAIN SELECT AVG(Cast(TRIM(
LEADING MAX(admin_AuftragStatusLog.date_add)
FROM MAX(concat(admin_AuftragStatusLog.date_add, admin_AuftragStatusLog.status))) AS SIGNED ))
AS `LastStatus`
FROM admin_AuftragLst
INNER JOIN admin_AuftragStatusLog
ON admin_AuftragLst.AuftrLstID = admin_AuftragStatusLog.AuftrLstID
GROUP BY admin_AuftragLst.AuftrUEBID
__________________
bei fragen immer
windows - pc: Start -> Ausführen -> cmd (command) - format c:
linux : lass es , es hat sicher einen sinn so
--
php-forum.at
>>>>dont ask me why<<<<
|

09-11-2004, 14:31
|
asp2php
Banned
|
|
Registriert seit: Feb 2004
Beiträge: 11.745
|
|
Hm... letzter Versuch:
date_add ist reserviertes Wort, wie wär's mit z.B. admin_AuftragStatusLog.`date_add`ansprechen
|

09-11-2004, 14:34
|
mickey
Junior Member
|
|
Registriert seit: Mar 2002
Beiträge: 152
|
|
leider wieder nicht .... BUGGIE !?!
dennoch DANKE!
werde es daweil anders machen. falls jemanden noch etwas einfallen würde, wäre ich ihm sehr sehr dankbar!
danke!
PHP-Code:
EXPLAIN SELECT AVG( Cast( TRIM(
LEADING MAX( admin_AuftragStatusLog.`date_add` )
FROM MAX( concat( admin_AuftragStatusLog.`date_add` , admin_AuftragStatusLog.status ) ) ) AS SIGNED ) ) AS `LastStatus`
FROM admin_AuftragLst
INNER JOIN admin_AuftragStatusLog ON admin_AuftragLst.AuftrLstID = admin_AuftragStatusLog.AuftrLstID
GROUP BY admin_AuftragLst.AuftrUEBID
__________________
bei fragen immer
windows - pc: Start -> Ausführen -> cmd (command) - format c:
linux : lass es , es hat sicher einen sinn so
--
php-forum.at
>>>>dont ask me why<<<<
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|