/ 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
MySQL: nested query (tror jeg nok)
Fra : Daniel Overby


Dato : 07-06-05 22:14

Jeg har en tabel med an attribut kaldet dealers og en kaldet comparisonID.

Nu vil jeg gerne vide antallet af tupler for hver dealer, hvor comparisonID
= null.

Hvordan klares dette? Har prøvet med noget ala:

SELECT DISTINCT dealers, countNulls as (SELECT count(*) FROM table WHERE
dealers = ?) FROM table

Dette virker dog ikke i Mysql 4.1 - den melder om en syntax-fejl.

- Daniel



 
 
Martin (07-06-2005)
Kommentar
Fra : Martin


Dato : 07-06-05 23:00

Daniel Overby wrote:
> Jeg har en tabel med an attribut kaldet dealers og en kaldet comparisonID.
>
> Nu vil jeg gerne vide antallet af tupler for hver dealer, hvor comparisonID
> = null.
>
> Hvordan klares dette? Har prøvet med noget ala:
>
> SELECT DISTINCT dealers, countNulls as (SELECT count(*) FROM table WHERE
> dealers = ?) FROM table
>
> Dette virker dog ikke i Mysql 4.1 - den melder om en syntax-fejl.
>
> - Daniel
>
>

SELECT count(*) FROM table WHERE dealers = NULL OR dealers = ""

Mon det virker ?

Nis Jorgensen (08-06-2005)
Kommentar
Fra : Nis Jorgensen


Dato : 08-06-05 00:10

On Tue, 7 Jun 2005 23:13:34 +0200, "Daniel Overby"
<mailFJERN@overbyhansenFJERN.dk> wrote:

>Jeg har en tabel med an attribut kaldet dealers og en kaldet comparisonID.
>
>Nu vil jeg gerne vide antallet af tupler for hver dealer, hvor comparisonID
>= null.
>
>Hvordan klares dette?

Foerst: Jeg haaber ikke din tabel hedder "table". Det er ikke noget
godt navn.

Dernaest:

SELECT dealers, count(*)
FROM table
WHERE comparisonID IS NULL
GROUP BY dealers

> Har prøvet med noget ala:
>
>SELECT DISTINCT dealers, countNulls as (SELECT count(*) FROM table WHERE
>dealers = ?) FROM table
>
>Dette virker dog ikke i Mysql 4.1 - den melder om en syntax-fejl.

Du har galt fat i syntaxen - du skal have "AS kolonnenavn" efter
udtrykket:

SELECT DISTINCT dealers, (SELECT count(*) FROM table WHERE dealers =
?) AS countNulls FROM table

Det skulle kunne faas til at virke med lidt ekstra arbejde (du mangler
IS NULL samt at skelne mellem de to "table"-referencer) - men
ovenstaaende er nemmere.

--
Nis Jorgensen
Midlertidigt uden ae oe og aa. Jeg beklager.

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

Månedens bedste
Årets bedste
Sidste års bedste