2014-12-09 2 views
-1

Что мне нужно:условие Дело не работает

  • мне нужно проверить, если eventvisitor.published будет 1, то приращение на ноль еще eventvisitor равен 0.

MySQL запросов

  SUM(
      CASE 
      WHEN eventvisitor.published =1 
      THEN eventvisitor.published=eventvisitor.published+0 
      ELSE eventvisitor.published=0 
      END 
      ) AS eventvsisitorpublished 

SQL запрос работает

$qb->select(' 
    eve.id, 
    SUBSTRING(ed.value,1,150) des, 
    eve.membership, 
    eve.name, 
    eve.abbrName abbr_name, 
    eve.membership paid, 
    eve.wrapper event_wrapper, 
    (case when attach.cdnUrl is null then attach.value else attach.cdnUrl end) event_samll_wrapper, 
    eve.url event_url, 
    eve.website, 
    eve.eventType, 
    venue.name venue_name, 
    e.startDate, 
    e.endDate, 
    ct.name city, 
    c.name country, 
    c.url country_url, 
    c.shortname country_shortname, 
    category.id industry_id, 
    category.name industry_name, 
    category.url industry_url, 
    eve.status event_status, 
    count(distinct eventvisitor.user) PeopleAttending 
') 
->add('from', $from); 
->innerJoin('Entities\City','ct','with','eve.city = ct.id') 
->innerJoin('Entities\Country','c','with','eve.country = c.id') 
->innerJoin('Entities\EventEdition','e','with','eve.eventEdition = e.id') 
->innerjoin('Entities\EventCategory','cat','with','e.event = cat.event') 
->innerjoin('Entities\Category','category','with','cat.category = category.id') 
->leftJoin('Entities\Venue','venue','with','e.venue=venue.id') 
->leftJoin('Entities\EventVisitor','eventvisitor','with','eve.id=eventvisitor.event') 
//->leftJoin('Entities\Venue','v','with','v.id = e.venue') 
->leftJoin('Entities\EventData','ed','with','eve.eventEdition = ed.eventEdition') 
->leftJoin('Entities\Attachment','attach','with','eve.wrapperSmall = attach.id') 
->Where("ed.title ='desc' or ed.title is null") 
->andWhere("eve.id in (".$res.")") 
->andWhere("eventvisitor.published =1") 
  • проверяет наличие условий.

проблема я столкнулся: Я получаю 500 Внутренняя ошибка

  • где я сделал неправильно любое предложение приветствуется.
+0

MySQL не выбрасывает 500 внутренних ошибок. Итак, какой язык программирования вы используете для взаимодействия с MySQL и что говорят в журналах ошибок Apache около 500 ошибок? Наконец, каков ваш код на линии и вокруг нее, которая вызывает внутреннюю ошибку 500? – sjagr

+0

и, кстати, вы можете опустить случай, когда 'eventvisitor.published = 1', поскольку он ничего не делает (приращение на ноль). –

+0

Итак, теперь вы сбросили код QueryBuilder, который полностью не соответствует вашему исходному «SQL» примеру. Что-то тусклый здесь ... – sjagr

ответ

0

использование этого

  SUM(
      IF(eventvisitor.published ==1, eventvisitor.published , 0) 
      ) AS eventvsisitorpublished 
+0

запрос работает SUM ( \t \t \t СЛУЧАЙ \t \t \t ПРИ eventvisitor.published = 1 \t \t \t ТОГДА 1 \t \t \t ELSE 0 \t \t \t END \t \t \t) AS eventpublished, но не дает результат – user2818060

Смежные вопросы