Gå til innhold

Hjelp med å krysse to tabeller


Anbefalte innlegg

Jeg sliter litt med en php-kode.

En database har to tabeller; ordre_total og ordre_detalj

Tabellen ordre_total har følgende felter; ordrenr og ordre_dato

Tabellen ordre_detalj har følgende felter; ordre_nr, ordre_mvasats, ordre_linje_eks, ordre_linje_ink

 

PHP-koden skal finne alle ordrene fra en gitt dato i ordre_total og summere disse på en enkelt linje basert på ordre_mvasats fra ordre_detalj.

 

Resultatet skal da i all enkelhet bli noe sånn, avhengig av hvilke mvasatser som er brukt i ordren;

 

mvasats-eks-ink

25%-100-125

14%-100-114

8%-100-108

0%-100-100

 

Er bare 25% brukt, skal bare linjen med 25% vises osv. Er flere satser brukt vises de respektive satsene.

 

Den koden jeg har nå looper seg bare gjennom for hver enkelt ordrenummer, men jeg vil gjerne samle alle i en bolk.

 

Det er sikkert bare jeg som er litt trøtt i trynet her. Legger uansett med koden under


<br>

<table width="359" border="0" cellspacing="0" cellpadding="0">
<tr class="bunnlinje">
<td width="80" class="font10"><strong>MVA-Sats</strong></td>
<td width="80" class="font10"><strong>Grunnlag</strong></td>
<td width="80" class="font10"><strong>MVA-Beløp</strong></td>
<td width="119" class="font10"><strong>Sum ink. mva</strong></td>
</tr>

<?php
 {
 $query=" SELECT * FROM ordre_total WHERE ordre_dato = '$oppgjordato'";
 $result=mysql_query($query);
 $num=mysql_numrows($result);

 $ix=0;
 while ($ix < $num) {
    $ordrenummermvasats = mysql_result($result,$ix,"ordrenr");
?>

<?php
 $queryg="SELECT DISTINCT ordre_mvasats FROM ordre_detalj WHERE ordre_nr='$ordrenummermvasats' ORDER BY 0+ordre_mvasats ASC";
 $resultg=mysql_query($queryg);
 $numg=mysql_num_rows($resultg);
 $g=0;
 while ($g < $numg) {
 $mvaprosent=mysql_result($resultg,$g,"ordre_mvasats");
{
if ( $mvaprosent == "Ikke MVA" ) {
$prosenttegn = " ";
}
elseif ( $mvaprosent == "Ikke" ) {
$prosenttegn = " ";
}
else
{ 
$prosenttegn = "%";
} 
}
?>
<?php
$queryh = "SELECT ordre_mvasats, ordre_nr, SUM(ordre_linje_eks), SUM(ordre_linje_ink)FROM ordre_detalj WHERE ordre_mvasats='$mvaprosent' AND ordre_nr='$ordrenummermvasats' ORDER BY 0+ordre_mvasats ASC"; 
$resulth = mysql_query($queryh) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($resulth)){
$grunnlag = $row['SUM(ordre_linje_eks)'];
$linjesumink = $row['SUM(ordre_linje_ink)'];
$linjemvaut = $linjesumink-$grunnlag;
}
?>
<tr>
<td width="80" class="font10"><?php echo $mvaprosent; ?><?php echo $prosenttegn; ?></td>
<td width="80" class="font10"><?php echo $grunnlag; ?></td>
<td width="80" class="font10"><?php echo $linjemvaut; ?></td>
<td width="119" class="font10"><?php echo $linjesumink; ?></td>
</tr>
<?php
++$g;
}
?>

 <?php
++$ix;
}
}
?>
</table>

Lenke til kommentar
Videoannonse
Annonse

Jeg tror du vil ha beløpet uten moms og mva-satsen pr. ordrelinje. Da er det en enkel operasjon å finne beløpet med moms.

Hvis mva-satsen er angitt som heltall 8, 12 og 24

 

SQL-spørringen vil da være noe i nærheten av "SELECT belop, mva, belop*(mva/100) as mva_belop belop*(1+mva/100) as sum_inc_mva FROM invoice_lines GROUP BY mva WHERE ordre_nr = $ordre"

 

Håper dette hjelper deg nærmere.

 

Du vil nok gjerne ha SUM() inni der noen steder også, men det finner du ut.

Lenke til kommentar

Det var ikke det jeg mente BlueEAGLE.

Jeg vil ikke ha for hver ordrelinje, jeg vil at alle ordrene skal summeres sammen.

Først må ordrenumrene finnes i den ene tabellen, for så å ta summene tilhørende disse ordrenumrene i den andre tabellen og summere disse.

Lenke til kommentar

Med et par SUM() i den spørringen så skal du være veldig nær.

 

"SELECT sum(belop), mva, sum(belop*(mva/100)) as mva_belop sum(belop*(1+mva/100)) as sum_inc_mva FROM invoice_lines GROUP BY mva WHERE ordre_nr = $ordre"

 

eller noe i den duren. Da vil du få det du ønsker gruppert pr. mva-sats

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å
×
×
  • Opprett ny...