Вызов неопределенной функции where () laravel

Идея довольно проста:

  • вы находитесь в последний день месяца, если (месяц назначенного срока) не совпадает (месяц с даты + 1 день ). Это охватывает все случаи в течение года, високосного года и так далее.
  • оттуда, если (количество строк для одного id) совпадает с (количество строк для этого id, которое является последним днем ​​месяца), у вас есть победитель.

Я попытался написать пример (не тестировался). Вы не указываете, какая БД, поэтому я предполагаю, что cte (общее табличное выражение) доступно. Если не просто поставить cte в подзапрос. Точно так же я не уверен, что dateadd и interval работают одинаково во всех диалектах.

with addlastdayofmonth as (
select
    id
    -- adding a 'virtualcolumn', 1 if last day of month 0 otherwise
  , if(month(dateadd(due_date, interval '1' day)) != month(due_date), 1 ,0) as onlastday
from
  table
)
select 
    id
  , count(*) - sum(onlastday) as alwayslastday 
from
  addlastdayofmonth
group by
  id
having
  -- if count(rows) == count(rows with last day) we have a winner
  halwayslastday = 0
0
задан M_M 18 January 2019 в 21:29
поделиться

1 ответ

В этой строке:

-where('Commande_nadine.DATE_DOCUMENT_CMD_ACHAT_FRS',">",$Debut)

Вам не хватает > до where:

->where('Commande_nadine.DATE_DOCUMENT_CMD_ACHAT_FRS',">",$Debut)
0
ответ дан RobertAKARobin 18 January 2019 в 21:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: