Hi everybody,

I have a problem grouping a field which can be empty or with value. For example, I have a country node type, and it has a field named postal code which is not mandatory. I want to do a view with group by postal code option. If there are one or more nodes without postal code field, the view doesn't show the row of that field.

If you don't understand my explanation, please tell me and I'll explain again.

Thank you so much.

CommentFileSizeAuthor
#5 views_export.txt111.13 KBSinan Erdem
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

luisortizramos’s picture

+1

I have the same issue.

I have an Event with Title, Place and Days. Place is not mandatory and Days is a multiple date field.

If I order the view using this date field I get multiple rows for the same Event. So, I use the "Group by" options with "Tilte" and "Place" wondering if it will solve my problem and it does, but it generates a new one: when "Place" is empty it don't renders the row. Neither the view nor the SQL query it generates gets the data row.

merlinofchaos’s picture

Status: Active » Postponed (maintainer needs more info)

I think there is some confusion due to the naming in the UI.

There are two possible grouping settings. One is in the style settings on the left. One is under advanced settings on the right. Please specify which one you mean.

Attaching an export of the view might help as well.

luisortizramos’s picture

Status: Postponed (maintainer needs more info) » Active

I'm using the agregation grouping option (under "Advanced options").

This is the view export:

$view = new view;
$view->name = 'upcoming_events';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Próximas actividades';
$view->core = 7;
$view->api_version = '3.0-alpha1';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['group_by'] = TRUE;
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['query']['options']['query_comment'] = FALSE;
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Reiniciar';
$handler->display->display_options['pager']['type'] = 'some';
$handler->display->display_options['pager']['options']['items_per_page'] = '2';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['row_plugin'] = 'fields';
$handler->display->display_options['row_options']['inline'] = array(
  'field_place' => 'field_place',
  'field_date' => 'field_date',
  'field_organizer' => 'field_organizer',
);
$handler->display->display_options['row_options']['separator'] = ',';
$handler->display->display_options['row_options']['hide_empty'] = 0;
$handler->display->display_options['row_options']['default_field_elements'] = 1;
/* Campo: Contenido: Título */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['title']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['title']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['title']['alter']['external'] = 0;
$handler->display->display_options['fields']['title']['alter']['replace_spaces'] = 0;
$handler->display->display_options['fields']['title']['alter']['trim_whitespace'] = 0;
$handler->display->display_options['fields']['title']['alter']['nl2br'] = 0;
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = 0;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = 0;
$handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['title']['alter']['trim'] = 0;
$handler->display->display_options['fields']['title']['alter']['html'] = 0;
$handler->display->display_options['fields']['title']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['title']['element_default_classes'] = 1;
$handler->display->display_options['fields']['title']['hide_empty'] = 0;
$handler->display->display_options['fields']['title']['empty_zero'] = 0;
$handler->display->display_options['fields']['title']['hide_alter_empty'] = 0;
$handler->display->display_options['fields']['title']['link_to_node'] = 1;
/* Campo: Contenido: Organizador */
$handler->display->display_options['fields']['field_organizer']['id'] = 'field_organizer';
$handler->display->display_options['fields']['field_organizer']['table'] = 'field_data_field_organizer';
$handler->display->display_options['fields']['field_organizer']['field'] = 'field_organizer';
$handler->display->display_options['fields']['field_organizer']['label'] = '';
$handler->display->display_options['fields']['field_organizer']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['field_organizer']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['field_organizer']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['field_organizer']['alter']['external'] = 0;
$handler->display->display_options['fields']['field_organizer']['alter']['replace_spaces'] = 0;
$handler->display->display_options['fields']['field_organizer']['alter']['trim_whitespace'] = 0;
$handler->display->display_options['fields']['field_organizer']['alter']['nl2br'] = 0;
$handler->display->display_options['fields']['field_organizer']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['field_organizer']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['field_organizer']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['field_organizer']['alter']['trim'] = 0;
$handler->display->display_options['fields']['field_organizer']['alter']['html'] = 0;
$handler->display->display_options['fields']['field_organizer']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_organizer']['element_default_classes'] = 1;
$handler->display->display_options['fields']['field_organizer']['hide_empty'] = 1;
$handler->display->display_options['fields']['field_organizer']['empty_zero'] = 0;
$handler->display->display_options['fields']['field_organizer']['hide_alter_empty'] = 0;
$handler->display->display_options['fields']['field_organizer']['field_api_classes'] = 0;
/* Campo: Contenido: Lugar */
$handler->display->display_options['fields']['field_place']['id'] = 'field_place';
$handler->display->display_options['fields']['field_place']['table'] = 'field_data_field_place';
$handler->display->display_options['fields']['field_place']['field'] = 'field_place';
$handler->display->display_options['fields']['field_place']['label'] = '';
$handler->display->display_options['fields']['field_place']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['field_place']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['field_place']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['field_place']['alter']['external'] = 0;
$handler->display->display_options['fields']['field_place']['alter']['replace_spaces'] = 0;
$handler->display->display_options['fields']['field_place']['alter']['trim_whitespace'] = 0;
$handler->display->display_options['fields']['field_place']['alter']['nl2br'] = 0;
$handler->display->display_options['fields']['field_place']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['field_place']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['field_place']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['field_place']['alter']['trim'] = 0;
$handler->display->display_options['fields']['field_place']['alter']['html'] = 0;
$handler->display->display_options['fields']['field_place']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_place']['element_default_classes'] = 1;
$handler->display->display_options['fields']['field_place']['hide_empty'] = 1;
$handler->display->display_options['fields']['field_place']['empty_zero'] = 0;
$handler->display->display_options['fields']['field_place']['hide_alter_empty'] = 0;
$handler->display->display_options['fields']['field_place']['field_api_classes'] = 0;
/* Campo: Contenido: Fecha */
$handler->display->display_options['fields']['field_date']['id'] = 'field_date';
$handler->display->display_options['fields']['field_date']['table'] = 'field_data_field_date';
$handler->display->display_options['fields']['field_date']['field'] = 'field_date';
$handler->display->display_options['fields']['field_date']['label'] = '';
$handler->display->display_options['fields']['field_date']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['field_date']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['field_date']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['field_date']['alter']['external'] = 0;
$handler->display->display_options['fields']['field_date']['alter']['replace_spaces'] = 0;
$handler->display->display_options['fields']['field_date']['alter']['trim_whitespace'] = 0;
$handler->display->display_options['fields']['field_date']['alter']['nl2br'] = 0;
$handler->display->display_options['fields']['field_date']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['field_date']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['field_date']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['field_date']['alter']['trim'] = 0;
$handler->display->display_options['fields']['field_date']['alter']['html'] = 0;
$handler->display->display_options['fields']['field_date']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_date']['element_default_classes'] = 1;
$handler->display->display_options['fields']['field_date']['hide_empty'] = 1;
$handler->display->display_options['fields']['field_date']['empty_zero'] = 0;
$handler->display->display_options['fields']['field_date']['hide_alter_empty'] = 0;
$handler->display->display_options['fields']['field_date']['field_api_classes'] = 0;
/* Sort criterion: MIN(Contenido: Días en el calendario (field_days)) */
$handler->display->display_options['sorts']['field_days_value']['id'] = 'field_days_value';
$handler->display->display_options['sorts']['field_days_value']['table'] = 'field_data_field_days';
$handler->display->display_options['sorts']['field_days_value']['field'] = 'field_days_value';
$handler->display->display_options['sorts']['field_days_value']['group_type'] = 'min';
/* Filter criterion: Contenido: Publicado */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 0;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filter criterion: Contenido: Tipo */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'event' => 'event',
);
/* Filter criterion: Fecha: Date (node) */
$handler->display->display_options['filters']['date_filter']['id'] = 'date_filter';
$handler->display->display_options['filters']['date_filter']['table'] = 'node';
$handler->display->display_options['filters']['date_filter']['field'] = 'date_filter';
$handler->display->display_options['filters']['date_filter']['operator'] = '>=';
$handler->display->display_options['filters']['date_filter']['granularity'] = 'day';
$handler->display->display_options['filters']['date_filter']['form_type'] = 'date_select';
$handler->display->display_options['filters']['date_filter']['default_date'] = 'now';
$handler->display->display_options['filters']['date_filter']['default_to_date'] = '';
$handler->display->display_options['filters']['date_filter']['year_range'] = '-3:+3';
$handler->display->display_options['filters']['date_filter']['date_fields'] = array(
  'field_data_field_days.field_days_value' => 'field_data_field_days.field_days_value',
);
$handler->display->display_options['filters']['date_filter']['date_method'] = 'OR';
$handler->display->display_options['filters']['date_filter']['date_group'] = 'date';
/* Filter criterion: Contenido: Colocado en la página principal */
$handler->display->display_options['filters']['promote']['id'] = 'promote';
$handler->display->display_options['filters']['promote']['table'] = 'node';
$handler->display->display_options['filters']['promote']['field'] = 'promote';
$handler->display->display_options['filters']['promote']['value'] = '1';

/* Display: Content pane */
$handler = $view->new_display('panel_pane', 'Content pane', 'panel_pane_1');
$translatables['upcoming_events'] = array(
  t('Master'),
  t('more'),
  t('Apply'),
  t('Reiniciar'),
  t('Sort by'),
  t('Asc'),
  t('Desc'),
  t('Content pane'),
  t('View panes'),
);
dawehner’s picture

You used the aggregate feature of views3, but you seems to want to have groupby on the styles level.

Sinan Erdem’s picture

FileSize
111.13 KB

I am grouping a table display by a field, and excluding that field from display. If there is no field under that grouped field, then that group is not displayed. I want it to be shown. I think this is what m3n0R asked in the first place.

I am attaching my view.