Упорядочение результатов поиска по ставке НДС

У меня есть таблица с именем invoiceItems. Он содержит отдельные строки счета. Имеет следующие поля:

  • invoiceItemId (первичный ключ)
  • invoiceId (первичный ключ таблицы Invoices)
  • productId (первичный ключ таблицы products)
  • Темп
  • Количество
  • vatRate (0%, 6%, 12%, 21%)

Я хочу запросить базу данных и выбрать все invoiceItems с определенным номером счета. Затем я хочу отобразить различные vatRates, которые указаны в этом счете, и общую сумму НДС на vatRate.

Например, если результаты были:

  • invoiceItemId: 1, invoiceId: 17, productId: 23, ставка: 10 (€), количество: 10, ставка НДС: 6%
  • invoiceItemId: 2, invoiceId: 17, productId: 7, ставка: 100 (€), Количество: 1, НДС: 21%
  • invoiceItemId: 3, invoiceId: 17, productId: 8, ставка: 10 (€), Количество: 5, НДС: 12%

Я хотел бы повторить:

СЧЕТ № 17

НДС 6%: € 6
НДС 12%: € 6
НДС 21%: € 21

$sql = "SELECT * FROM invoiceItems WHERE invoiceId = ’17’”;
$query = $connect->query($sql);
$result = $query->fetch_assoc();

Я знаю, что я должен просмотреть результаты тогда, но я немного застрял …

-2

Решение

Использовать ГРУППА ПО а также SUM операторы встраиваются в SQL.

    $sql = "SELECT vatRate, SUM(quantity * price * vatRate) as total FROM invoiceItems WHERE invoiceId = ’17’ GROUP BY vatRate”;
$query = $connect->query($sql);

while($result = $query->fetch_assoc()) { // Fetch for each vatrate
// do what you want to do with the vats
// use $result["vatRate"] and $result["total"]
}
1

Другие решения

Цикл while это то, что вы ищете http://php.net/manual/en/control-structures.while.php

Вы можете тогда

while ($row = $query->fetch_assoc($result)) {
//print you stuff here
}

Проверьте примеры в документах http://php.net/manual/en/mysqli-result.fetch-assoc.php

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector