/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Standard SQL?
Fra : Uffe Kousgaard


Dato : 31-10-05 19:39

Er dette standard SQL?

select sum(field1) + (select sum(field2) from table2) from table1

Det returnerer summen af 2 felter som ét tal, fra 2 ikke-relaterede
tabeller. Virker med Borland BDE (dbf) og efter sigende også med Interbase
og MS SQL. Det virker derimod ikke med DBISAM databasen.

hilsen
Uffe



 
 
jarl@mimer.com (31-10-2005)
Kommentar
Fra : jarl@mimer.com


Dato : 31-10-05 22:02


Uffe Kousgaard wrote:
> Er dette standard SQL?
>
> select sum(field1) + (select sum(field2) from table2) from table1
>
> Det returnerer summen af 2 felter som ét tal, fra 2 ikke-relaterede
> tabeller. Virker med Borland BDE (dbf) og efter sigende også med Interbase
> og MS SQL. Det virker derimod ikke med DBISAM databasen.
>
> hilsen
> Uffe

Hej Uffe,

Ja, det är standard SQL. (Core SQL-2003 för att vara exakt.)

Nästa gång du undrar ifall en SQL-sats följer SQL-standarden eller
ej kan du testa med SQL Validator -
http://developer.mimer.com/validator/
SQL Validator har stöd för SQL-92, SQL-99 och SQL-2003.


Hilsen,
Jarl


Kim Hansen (01-11-2005)
Kommentar
Fra : Kim Hansen


Dato : 01-11-05 07:40

"Uffe Kousgaard" <oh@no.no> writes:

> Er dette standard SQL?
>
> select sum(field1) + (select sum(field2) from table2) from table1

Du aggregerer over field1 uden at aggregere eller have (select
.... from table2) i en GROUP BY, det mener jeg ikke er tilladt.

--
Kim Hansen

Thorbjoern Ravn Ande~ (01-11-2005)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 01-11-05 11:29

Kim Hansen <kimhanse@oek.dk> writes:

> Du aggregerer over field1 uden at aggregere eller have (select
> ... from table2) i en GROUP BY, det mener jeg ikke er tilladt.

Så antages hele resultatet som et sæt.
--
Thorbjørn Ravn Andersen

Kristian Damm Jensen (01-11-2005)
Kommentar
Fra : Kristian Damm Jensen


Dato : 01-11-05 11:26


Kim Hansen wrote:
> "Uffe Kousgaard" <oh@no.no> writes:
>
> > Er dette standard SQL?
> >
> > select sum(field1) + (select sum(field2) from table2) from table1
>
> Du aggregerer over field1 uden at aggregere eller have (select
> ... from table2) i en GROUP BY, det mener jeg ikke er tilladt.

Sludder og vrøvl.

Selvfølgelig kan man lave

select sum(foo)
from bar

Det andet element i eksemplet er en subselect, der returnere en
enkeltværdi. Det er der heller ikke noget problem i. (I forhold til
standarden.)

Kristian


Kim Hansen (01-11-2005)
Kommentar
Fra : Kim Hansen


Dato : 01-11-05 16:20

Thorbjoern Ravn Andersen <nospam0000@gmail.com> writes:

> Kim Hansen <kimhanse@oek.dk> writes:
>
>> Du aggregerer over field1 uden at aggregere eller have (select
>> ... from table2) i en GROUP BY, det mener jeg ikke er tilladt.
>
> Så antages hele resultatet som et sæt.

Jeg har nu forstaaet hvorfor den oprindelige query er lovlig, men hvad
mener du med "et saet"?

--
Kim Hansen

Thorbjoern Ravn Ande~ (01-11-2005)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 01-11-05 22:40

Kim Hansen <kimhanse@oek.dk> writes:

> >> Du aggregerer over field1 uden at aggregere eller have (select
> >> ... from table2) i en GROUP BY, det mener jeg ikke er tilladt.
> >
> > Så antages hele resultatet som et sæt.
>
> Jeg har nu forstaaet hvorfor den oprindelige query er lovlig, men hvad
> mener du med "et saet"?

At "GROUP BY" opdeler i sæt som der kan tælles i, summeres over mv.

Uden GROUP BY er der ingen opdeling, hele resultatet er ét sæt.

--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn/

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408179
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste