Gå til innhold

Hvordan forenkle tellingen?


Anbefalte innlegg

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++;
 
}

Lenke til kommentar
Videoannonse
Annonse

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.

Lenke til kommentar

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.

Lenke til kommentar

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
Lenke til kommentar
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.

Lenke til kommentar

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...