join - how to subtract two column in mysql where clause? -


i have query want subtract 2 column. here query

select      field_data_field_max_pax_allowed.`field_max_pax_allowed_value` m,     field_data_field_bookable_item.`entity_id`,     node.nid hotel_id,      field_data_field_rooms.`field_rooms_target_id` room,      field_data_field_quantity.`field_quantity_value` number_of_rooms,     node.title,     max(ifnull(quan.`field_quantity_value`,0)) maxs,     dr.`field_datetime_range_value`,     dr.`field_datetime_range_value2` node node left join field_data_field_rooms on node.nid = field_data_field_rooms.entity_id  inner join node n on field_data_field_rooms.field_rooms_target_id = n.nid left join field_data_field_max_pax_allowed on field_data_field_rooms.`field_rooms_target_id` = field_data_field_max_pax_allowed.`entity_id` left join field_data_field_quantity on field_data_field_quantity.`entity_id` = field_data_field_rooms.`field_rooms_target_id` left join field_data_field_bookable_item on field_data_field_bookable_item.`field_bookable_item_target_id` = field_data_field_rooms.`field_rooms_target_id` left join field_data_field_quantity quan on field_data_field_bookable_item.`entity_id` = quan.`entity_id` left join field_data_field_datetime_range dr on field_data_field_bookable_item.`entity_id` = dr.`entity_id` (node.type in  ('hotel'))     , (date_format('2014-12-01', '%y-%m-%d') between date_format(dr.field_datetime_range_value, '%y-%m-%d') , date_format(dr.field_datetime_range_value2,'%y-%m-%d')         or date_format('2014-12-31', '%y-%m-%d') between date_format(dr.field_datetime_range_value,'%y-%m-%d') , date_format(dr.field_datetime_range_value2,'%y-%m-%d')         or date_format(dr.field_datetime_range_value, '%y-%m-%d') between date_format('2014-12-01', '%y-%m-%d') , date_format('2014-12-31', '%y-%m-%d')         or date_format(dr.field_datetime_range_value2, '%y-%m-%d') between date_format('2014-12-31', '%y-%m-%d') , date_format('2014-12-01', '%y-%m-%d')         )     , (field_data_field_quantity.`field_quantity_value` - max(ifnull(quan.`field_quantity_value`,0)) > 2) group field_data_field_rooms.`field_rooms_target_id` 

this showing error code: 1111 invalid use of group function how can solve it?

the where clause used select rows process. can't aggregate functions max() there, because can't calculated until after rows selected -- have chicken-and-egg problem.

you should put in having clause, used filter resulting rows. should be:

... (node.type in  ('hotel'))     , (date_format('2014-12-01', '%y-%m-%d') between date_format(dr.field_datetime_range_value, '%y-%m-%d') , date_format(dr.field_datetime_range_value2,'%y-%m-%d')         or date_format('2014-12-31', '%y-%m-%d') between date_format(dr.field_datetime_range_value,'%y-%m-%d') , date_format(dr.field_datetime_range_value2,'%y-%m-%d')         or date_format(dr.field_datetime_range_value, '%y-%m-%d') between date_format('2014-12-01', '%y-%m-%d') , date_format('2014-12-31', '%y-%m-%d')         or date_format(dr.field_datetime_range_value2, '%y-%m-%d') between date_format('2014-12-31', '%y-%m-%d') , date_format('2014-12-01', '%y-%m-%d')         ) group field_data_field_rooms.`field_rooms_target_id` having (field_data_field_quantity.`field_quantity_value` - max(ifnull(quan.`field_quantity_value`,0)) > 2) 

Comments

Popular posts from this blog

matlab - "Contour not rendered for non-finite ZData" -

delphi - Indy UDP Read Contents of Adata -

qt - How to embed QML toolbar and menubar into QMainWindow -