[gelöst] SUM (), COUNT () bei Views?
am 24.01.2010 - 22:18 Uhr in
Hallo zusammen,
kann mir jemand weiterhelfen, wie ich ein simples Summen bzw. Anzahlfeld für Views bekomme? In der Art:
Node Title: Meeting 24.11.2009
Anzahl Teilnehmer: 12
Die Anzahl der Teilnehmer soll via SignUp gesteuert sein.
Ich bekomme:
Meeting 24.11.2009
Teilnehmer A
Meeting 24.11.2009
Teilnehmer B
Meetign 24.11.2009
Teilnehmer C
...
usw. schon hin, aber wie erreiche ich die SQL Syntax SUM () oder COUNT ()?
- Anmelden oder Registrieren um Kommentare zu schreiben

Suchen
am 25.01.2010 - 08:46 Uhr
aber wie erreiche ich die SQL Syntax SUM () oder COUNT ()?
Ich glaube, ich muss mal einen Screencast machen zum Thema "wie finde ich die die Antwort auf meine Fragen selbst".
http://lmgtfy.com/?q=drupal+views+sum+count
Gleich hinter dem ersten Treffer "versteckt" sich die Lösung.
Stefan
--
Sei nett zu Deinem Themer!
Mein Problem ist aber...
am 25.01.2010 - 15:42 Uhr
dass ich SUM oder COUNT gar nicht als verfügbare Operationen im Views_Calc/Settings habe...
Da gibt es nur MIN, MAX, NOW(), CONCAT () usw.
Wie bekommt man auch SUM oder COUNT?
Grüße Christian
views_calc
am 25.01.2010 - 15:59 Uhr
Wenn ich mir den Code von views_calc anschaue, sehe ich im Ausgabstil "Views Calc Table" ganz klar und deutlich die Optionen SUM und COUNT. Oder?
Stefan
--
Sei nett zu Deinem Themer!
okay...
am 26.01.2010 - 07:40 Uhr
...in der Views Calc Table steht SUM und COUNT
Wie verwende ich das aber korrekt?
Ich hätte gerne einen Output in der Art:
11.12.2009 Training Anzahl Teilnehmer (SignUp): 16 Teilgenommen: 14
17.01.2010 Spiel Anzahl Teilnehmer: (SignUp): 9 Teilgenommen: 9
Kann mir da jemand weiterhelfen?
Grüße Christian
Wenn Du nur die Anzahl
am 26.01.2010 - 08:41 Uhr
Wenn Du nur die Anzahl brauchst, hilft vielleicht auch noch das Modul "Views GroupBy".
Ansonst bleibt noch eine Programmierlösung: Modul "PHP filter", etwas PHP-Code und einem handgestrickten SQL-Befehl -> http://drupal.org/node/280069#comment-914266. Modul aktivieren, neuen Inhalt erstellen, als Eingabeformat "PHP Code" wählen, den Code aus dem Link eintragen und nach deinen Wünschen umprogrammieren. Nicht schön, aber selten.
Views GroupBy
am 26.01.2010 - 08:46 Uhr
Kann man da auch mehrdimensional gruppieren / Kannst Du das empfehlen?
Die Anwendungsmöglichkeiten
am 26.01.2010 - 09:59 Uhr
Die Anwendungsmöglichkeiten sind schon eher beschränkt. Die Anzahl von Nodes ermittelt es schon recht gut, aber eine vernünftige mehrdimensionale Gruppierung habe ich bisher nicht hinbekommen. Man kann wohl auch nicht nach CCK-Feldern gruppieren :(
Hmm...
am 26.01.2010 - 10:50 Uhr
...aber es muss doch irgendwie möglich sein, einfache Teilsummen (Teilcounts) zu ermitteln?
Wie gesagt in der Art:
11.01.2009 (Node:Datum) 25 angemeldet (Anmeldungen:User:status = 'Dabei') 20 gekommen (Anmeldungen:Benutzer:Teilgenommen? = 'Teilgenommen')
18.01.2009 (Node:Datum) 34 angemeldet (Anmeldungen:User:status = 'Dabei') 32 gekommen (Anmeldungen:Benutzer:Teilgenommen? = 'Teilgenommen')
kann man denn bei views_calc...
am 27.01.2010 - 07:35 Uhr
...nicht nach mehreren feldern gruppieren oder quasi subqueries machen?
oder gibts eine einfache möglichkeit SQL-Syntax irgendwo einzugeben?
Ich hab noch mal was
am 27.01.2010 - 12:58 Uhr
Ich hab noch mal was gefunden: http://drupal.org/node/409808. Damit kann man ein Modul schreiben, dass die Queries der Views überschreibt. Beispiel:
Erstelle ein Verzeichnis in einem modules-Verzeichnis z.B. sites/all/modules das ein Verzeichnis namens "zviews_custom_queries" und darin folgende Dateien:
Datei "zviews_custom_queries.info"
; $Id: zviews_custom_queries $name = Views custom queries
description = Custom queries.
package = Views
version = "6.x-dev"
core = "6.x"
project = "zviews_custom_queries"
Datei "zviews_custom_queries.module"
<?php// TMG 3-21-09
// call to hook_views_pre_execute to override the query for the groups browser
function views_views_pre_execute(&$view) {
if($view->name=="test") { // Zu ändernde View (unique name of the view)
$view->build_info['query']="SELECT COUNT(node.nid) AS nid, node.type AS node_type FROM node node GROUP BY node.type"; //neuer Query
//$view->build_info['query']="SELECT node.nid AS nid, node.type AS node_type FROM node node"; //Orginal Query als Gedächtnisstütze
}
}
?>
Bei der View "test" wird der Orginal-Query durch einen neuen ersetzt, wenn das Modul installiert ist. In diesem Fall wird die Anzahl der Nodes eines Types aus gegeben, statt alle Nodes und ihren Typ aufzulisten.
Die View dazu:
$view = new view;$view->name = 'test';
$view->description = 'test';
$view->tag = '';
$view->view_php = '';
$view->base_table = 'node';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Standards', 'default');
$handler->override_option('fields', array(
'type' => array(
'id' => 'type',
'table' => 'node',
'field' => 'type',
),
'nid' => array(
'label' => 'Beitrags-ID',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'strip_tags' => 0,
'html' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'link_to_node' => 0,
'exclude' => 0,
'id' => 'nid',
'table' => 'node',
'field' => 'nid',
'relationship' => 'none',
),
));
$handler->override_option('access', array(
'type' => 'none',
));
$handler->override_option('cache', array(
'type' => 'none',
));
$handler->override_option('style_plugin', 'table');
Views 3 kann GROUP BY, COUNT, SUM, etc.
am 28.01.2010 - 09:00 Uhr
Noch eine Möglichkeit:
Views 3 (views 6.x-3.0-alpha2) http://drupal.org/node/695302
Allerdings ist das eine Alpha und sollte noch nicht in einer Produktivumgebung eingesetzt werden...
ich glaube ich werde jetzt die SQL-Syntax im PHP-Format eingeben
am 28.01.2010 - 09:35 Uhr
das erscheint mir relativ übersichtlich und dann brauche ich "views" eigentlich nicht mehr...
hat dafür jemand einen tipp, wie man die einzelnen felder jeder tabelle (node, users, signup_log, ...) auslesen / ausgeben kann?
vielen dank
christian
Ich hab es so gemacht, dass
am 29.01.2010 - 11:56 Uhr
Ich hab es so gemacht, dass ich in Views den Query ohne sum und group by aufgebaut, anschließend in phpmyaddie Tmin kopiert und dann nur noch die Gruppierungsfunktionen eingebaut habe.