рассчитать сумму по разнице дат

0

У меня есть одна таблица с двумя столбцами, как показано на рисунке

Изображение 174551

при выполнении пользователя страницы введите дату начала и окончания.

теперь то, что мне нужно вычислить, - это общая сумма.

например, если пользователь поставил

      start date: 18-jan-2010
      end date: 23-jan-2010

то у него есть 2 даты в первых опциях (20 $) и 3 даты во вторых опциях (26 $), поэтому общая сумма будет (56 $).

Сначала я хочу рассчитать в sql

1. how many days in first range (if any this depends on supplied dates from user)
2. how many days in 2nd range  (if any this depends on supplied dates from user)
3. how many days in 3rd range  (if any this depends on supplied dates from user)

то

мы будем умножать дни с суммой в php для каждого диапазона.

в конце я хочу получить общее количество также в php.

  • 1
    Для меня это больше похоже на вопрос SQL, чем на PHP.
  • 0
    Просьба уточнить. «2 даты в первом варианте» - я вижу только 1 дату (20 января-10). «3 даты во втором варианте» - я вижу только 2 даты (30 января-10 и 31 января-10).
Теги:

2 ответа

2

Может быть:

SELECT SUM(amount) FROM your_table WHERE date BETWEEN start_date AND end_date GROUP BY user

  • 0
    Разве сумма не требует предложения GROUP BY?
  • 0
    @ Илиан Илиев: извините, это отредактировано.
Показать ещё 2 комментария
0
SELECT 'In Range' AS SumType
       SUM(amount) 
  FROM <table> 
 WHERE date BETWEEN start_date AND end_date
UNION
SELECT 'Outside Range' AS SumType
       SUM(amount) 
  FROM <table> 
 WHERE date < start_date OR date > end_date
UNION
SELECT 'Grand Total' AS SumType
       SUM(amount) 
  FROM <table> 
  • 0
    дорогой, я не понял В диапазоне и за пределами диапазона вы видели структуру таблицы, не могли бы вы написать SQL для меня? Большое спасибо
  • 0
    @air - действительно ли у вас есть столбец с именем "сумму в долларах" в вашей таблице базы данных?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню