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

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
MySQL problem... kan man dette?
Fra : Magnus


Dato : 16-11-03 12:46

|19|20|21|285|23|25|286|266|284|31|280|304|
|246|19|20|21|25|286|266|284|31|280|35|304|
|308|31|280|324|25|266|246|284|20|278|286|304|
|19|31|280|21|35|20|266|25|32|278|286|304|

Jeg har en celle med navnet "startop" og det indeholder en line som jeg har
4 eksempler på herover.

Hvordan får jeg antallet af poster hvor cellen "startop" indeholder "|284|".
Jeg har forsøgt men den vil ikke godtage min linie hvorfor og hvordan løser
jeg problemet?

/Magnus

bSQL = "SELECT COUNT(reportid) AS Antal, startop, reportid FROM Kampreport
WHERE startop LIKE '%" & Request.QueryString("id") & "%'"




 
 
Kim Jensen (16-11-2003)
Kommentar
Fra : Kim Jensen


Dato : 16-11-03 15:55

> Jeg har en celle med navnet "startop" og det indeholder en line som jeg
har
> 4 eksempler på herover.
> Hvordan får jeg antallet af poster hvor cellen "startop" indeholder
"|284|".
> Jeg har forsøgt men den vil ikke godtage min linie hvorfor og hvordan
løser
> jeg problemet?
> bSQL = "SELECT COUNT(reportid) AS Antal, startop, reportid FROM Kampreport
> WHERE startop LIKE '%" & Request.QueryString("id") & "%'"

Din SQL giver ikke helt mening, for hvad forventer du at få retur? Én record
eller flere?

Problemet er, at du forsøger at få feltet "startop" med i dit resultat. Det
kan du ikke når du samtidig bruger count()-funktionen.


--
mvh
Kim Jensen
// NewsCaster.dk // R2DVD.com // Port80.biz //



Jens Gyldenkærne Cla~ (16-11-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 16-11-03 23:45

Magnus skrev:

>|19|20|21|285|23|25|286|266|284|31|280|304|
>|246|19|20|21|25|286|266|284|31|280|35|304|
>|308|31|280|324|25|266|246|284|20|278|286|304|
>|19|31|280|21|35|20|266|25|32|278|286|304|

Ovenstående ligner et felt der indeholder flerværdier - altså flere
værdier placeret i ét felt. Det giver problemer i mange tilfælde -
bl.a. det du oplever nu.

Det bedste råd er at normalisere databasen - køb evt. et hæfte om
databaser hvis du ikke ved hvordan det gøres.


> bSQL = "SELECT COUNT(reportid) AS Antal, startop, reportid
> FROM Kampreport WHERE startop LIKE '%" &
> Request.QueryString("id") & "%'"

Når du benytter COUNT (eller andre aggregat-funktioner) skal
samtlige felter i SELECT-delen være aggregerede eller placeret i
GROUP BY-delen.

Du kan derfor skrive:

bSQL = "SELECT COUNT(reportid) AS Antal, startop, reportid
FROM Kampreport
WHERE startop LIKE '%" & Request.QueryString("id") & "%'"
GROUP BY startop, reportid

- men det vil ikke give det resultat du ønsker, fordi hver unik
værdi af startop vil give en post i resultatsættet.

Hvis du blot skal have antallet, kan du skrive:

bSQL = "SELECT COUNT(*) AS Antal
FROM Kampreport
WHERE startop LIKE '%" & Request.QueryString("id") & "%'"
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408943
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste