Отчеты по месяцам с php и mysql? - PullRequest
0 голосов
/ 07 июня 2011

Я хочу знать, как отображать отчет по месяцам с использованием PHP и Mysql

Пример отчета на веб-странице:

January 2011
==============
Store  Name    |  Total Order Cost
SHOP A         |  £123 
SHOP B         |  £100

February 2011
==============
Store  Name    |  Total Order Cost
SHOP A         |  £123 
SHOP B         |  £100
SHOP C         |  £99.40

У меня есть таблицы mysql

tbl_shop

  • ShopID

  • ShopName

tbl_order

  • OrderID

  • ShopID

  • OrderDate

  • Всего

Ответы [ 3 ]

2 голосов
/ 07 июня 2011

Вам нужно будет выполнить итерацию по результату запроса и создать многомерный массив, используя комбинацию месяц / год в качестве ключей. Приведенный ниже запрос должен быть хорошим индикатором того, как получить необходимую информацию из вашей базы данных.

SELECT 
    MONTH(to.OrderDate), 
    YEAR(to.OrderDate), 
    SUM(to.Total), 
    to.* 
FROM tbl_order as to
INNER JOIN tbl_shop as ts ON ts.ShopID = to.ShopID
GROUP BY to.ShopID, MONTH(to.OrderDate), YEAR(to.OrderDate)

Обратите внимание, что я не проверял этот запрос - обработайте его как псевдокод. Возможно, вам придется немного обойти поля GROUP BY и проверить, работает ли он.

1 голос
/ 07 июня 2011

Использование

SELECT ShopName,SUM(Total),MONTHNAME(OrderDate) from tbl_shop
left join tbl_order
on tbl_shop.ShopID = tbl_order.ShopID
GROUP By(ShopID),MONTHNAME(OrderDate)

даст вам отчет за все месяцы.

0 голосов
/ 07 июня 2011

Используйте этот запрос:

SELECT monthname(o.OrderDate) as Month, year(o.OrderDate) as Year,
  s.ShopName, sum(o.Total) as Total
FROM tbl_Shop s JOIN tbl_Order o
  ON s.ShopID=o.ShopID
GROUP BY o.shopID,year(o.Orderdate),month(o.Orderdate)
ORDER BY year(o.OrderDate),month(o.OrderDate)

затем для каждой строки из результата, если месяц + год изменился (может помочь переменная $ last_date), затем выведите

$Month $Year
==============
Store  Name    |  Total Order Cost
$ShopName      |  $Total

еще печать

$ShopName      |  $Total
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...