I think that is the wrong answer ... Standard-SQL and ANSI-SQL require that
a column that is displayed
and has no grouping function applied to it MUST also appear in the GROUP
BY-clause!!!!!!!
The result:
fldNAME fldMONAT sum(fldSALARY)
boris 1 10200
stephan 1 6000
itself makes no sense ... none earned as much money in January (1) ...
!!!!!!!!!
Postgres gives an error, Oracle gives an error, SQL-Server 7 gives an error
even M$-Access 2000 gives
an error why doesn't MySQL?????????????????
Literature:
http://www.newi.ac.uk/walshea/db1/sql04/index.htm
there: http://www.newi.ac.uk/walshea/db1/sql04/sld015.htm
http://www.nku.edu/~raghavan/gby.html
http://info-it.umsystem.edu/oracle/svslr/svslr.2.1089.html
http://www.sk.postgresql.org/docs/user/sql-select.htm
and so on ... I think ANSI-Specs should even tell you the same ... !
> -----Ursprungliche Nachricht-----
> Von: Bob Hall [mailto:[EMAIL PROTECTED]]
> Gesendet: Freitag, 26. Januar 2001 12:18
> An: [EMAIL PROTECTED]
> Betreff: Re: Strange behavior of MySQL 3.23.xx with GROUP BY ...
>
>
> >I found a very strange behaviour of MySQL 3.23.xx with GROUP BY
> clause ...
> >
> >I have a Table:
> >
> >CREATE TABLE groupbyTEST (
> > fldNAME varchar(20) NOT NULL,
> > fldMONTH tinyint(4) DEFAULT '0' NOT NULL,
> > fldSALARY decimal(10,0) DEFAULT '0' NOT NULL,
> > fldDATE datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
> > PRIMARY KEY (fldNAME, fldMONTH)
> >);
> >
> >with following records:
> >
> >INSERT INTO groupbyTEST VALUES ( 'stephan', '1', '1000', '2001-01-25
> >23:12:29');
> >INSERT INTO groupbyTEST VALUES ( 'boris', '1', '2000', '2001-01-25
> >23:12:45');
> >INSERT INTO groupbyTEST VALUES ( 'stephan', '2', '1200', '2001-01-25
> >23:12:56');
> >INSERT INTO groupbyTEST VALUES ( 'stephan', '3', '1000', '2001-01-25
> >23:13:08');
> >INSERT INTO groupbyTEST VALUES ( 'stephan', '4', '900', '2001-01-25
> >23:14:50');
> >INSERT INTO groupbyTEST VALUES ( 'boris', '2', '1200', '2001-01-25
> >23:15:01');
> >INSERT INTO groupbyTEST VALUES ( 'stephan', '5', '1900', '2001-01-25
> >23:15:16');
> >INSERT INTO groupbyTEST VALUES ( 'boris', '3', '2400', '2001-01-25
> >23:15:39');
> >INSERT INTO groupbyTEST VALUES ( 'boris', '4', '2100', '2001-01-25
> >23:15:50');
> >INSERT INTO groupbyTEST VALUES ( 'boris', '5', '2300', '2001-01-25
> >23:16:01');
> >INSERT INTO groupbyTEST VALUES ( 'boris', '6', '200', '2001-01-25
> >23:16:11');
> >
> >
> >A statement like:
> >
> >SELECT fldNAME, fldMONTH, sum(fldSALARY)
> >FROM groupbyTEST
> >GROUP BY fldNAME
> >HAVING sum(fldSALARY)>200
> >
> >should cause an error because of the missing fldMONTH in the GROUP BY
> >clause,
> >but it is executed without an error and results:
> >
> >fldNAME fldMONAT sum(fldGEHALT)
> >boris 1 10200
> >stephan 1 6000
> >
> >... makes not very much sense ... does it??
>
> Sir, why do you think it should cause an error? The statement is
> valid and the result is correct.
>
> Bob Hall
>
> Know thyself? Absurd direction!
> Bubbles bear no introspection. -Khushhal Khan Khatak
>
> ---------------------------------------------------------------------
> Before posting, please check:
> http://www.mysql.com/manual.php (the manual)
> http://lists.mysql.com/ (the list archive)
>
> To request this thread, e-mail <[EMAIL PROTECTED]>
> To unsubscribe, e-mail
> <[EMAIL PROTECTED]>
> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
>
---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)
To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php