Gå til innhold

Hvordan forenkle tellingen?


Anbefalte innlegg

Skrevet

Skal lage en statestikk der jeg skal vise antall reklamasjoner pr leverandør. Prøver med følgende som fungerer, men dette blir jo svært tungt å kjøre. Da leverandør registeret inneholder flere tusen poster og reklamasjonstabellen også etterhvert vil bli stor.

 

$levID = '1199'; 
$stopp = '2010';
$i = '0';
   
while ($levID <= $stopp)
{
$sql  = "SELECT * FROM Reklamasjon WHERE leverandorID = '$levID' ";
$result = mssql_query($sql);
$query = mssql_fetch_array($result);
$row = mssql_num_rows($result);

$sql2  = "SELECT * FROM leverandorer WHERE leverandorID = '$levID' ";
$result2 = mssql_query($sql2);
$query2 = mssql_fetch_array($result2);
$row2 = mssql_num_rows($result2);	

$navn = $query2['navn'];
if ($row > 0)
 {
 $datay[$i]=$row;
 $datax[$i]=$navn;
 $i++;
 }
$levID++;
 
}

Videoannonse
Annonse
Skrevet

eks:

 

tabellen

1 2 2

2 3 4

3 2 5

4 2 3

5 5 4

 

Si at jeg ønsker å telle antall linjer i kollone nr to. Jeg ønsker å vite hvor mange linjer der er med 2 hvor mange der er med 3 osv. Resultatet skal puttes inn i et array for grafisk visning.

Skrevet

i tabellen har jeg en kolonne som inneholder en leverandør ID, denne er unik for hver leverandør. Men hver leverandør kan ligge i flere linjer i tabellen. Så jeg ønsker å telle antallet linjer pr leverandør der ligger i tabellen.

Skrevet (endret)

Aggregering kan kanskje brukes.

"SELECT COUNT(*) FROM Reklamasjon GROUP BY leverandorID"

 

Edit: Så tabell og kolonnenavn lenger opp + skriveleif

 

Edit2: Alt i ett:

SELECT leverandorer.navn AS navn, COUNT(*) AS antall 
FROM Reklamasjon INNER JOIN leverandorer ON Reklamasjon.leverandorID = leverandorer.leverandorID 
GROUP BY leverandorID

 

 

Edit3: Fargekodetest

Endret av RottePostei
Skrevet
Aggregering kan kanskje brukes.

"SELECT COUNT(*) FROM Reklamasjon GROUP BY leverandorID"

 

Edit: Så tabell og kolonnenavn lenger opp + skriveleif

Da må man i så fall legge til feltet også slik at man vet hvilken verdi som har hvilket innhold:

 

"SELECT leverandorID, COUNT(*) FROM Reklamasjon GROUP BY leverandorID"

 

ellers vil det vel bare komme en liste med tall.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...