Cacolo con query

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
Salve,
devo fare un calcolo: prima devo sommare alcuni risultati e poi dividerli per 2, come posso fare?

PHP:
$query = "SELECT SUM(***) as cnt e tutto il resto"; //mi fa la somma dei valori
//qui dovrei passare il risultato della query e dividerlo per due
            $db->setQuery($nuovaquerycondivisione);
            $rows = $db->loadObjectList();

Grazie in anticipo
 

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
Funziona se divido per una costante :)
ma se dovessi dividere per il risultato di una query precedente, come posso fare?
es. SELECT SUM(***)/$altraquery as cnt ....
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
Funziona se divido per una costante :)
ma se dovessi dividere per il risultato di una query precedente, come posso fare?
es. SELECT SUM(***)/$altraquery as cnt ....
va bene come hai scritto tu, di fatto "$altraquery" è come se fosse una costante, nella posizione in cui si trova,

ma se non ti serve il risultato intermedio che parcheggi in "$altraquery", per altre elaborazioni, puoi unire le due query, esempio
SELECT SUM(***) / ( SELECT count(*) .... ) as cnt
l'importante è che la query "divisore" restituisca un solo valore

ciao
Marino
 
Ultima modifica:

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
E' un codice scritto da terzi che sto cercando di modificare :)
C'è qualcosa che non capisco perché anche se scrivo:

PHP:
	$a= 2;
	$b= 6;
	$query = $a+ $b;
	$db->setQuery($query);
        $rows = $db->loadObjectList();

mi dà errore...
Siccome si tratta di un'espressione che richiede più variabili (sotto forma di query) sarebbe ottimo avere questa struttura
PHP:
$a = query 1
$b = query 2
$c = query 3
$risultato = $a + $b + $c;

Come posso scrivere questa operazione tra query? :(
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
le select che si usano per le operazioni devono restituire uno e un solo valore, fatta questa premessa, l'esempio,

PHP:
$query = "
( select count(*) from tabella1 where condizione ) + ( select count(*) from tabella2 where condizione ) + ....
";
ciscuna select dell'esempio restituisce un valore che può essere sommato

in fondo a tutte le select puoi inserire anche un alias " as nome" se vuoi assegnare un nome al valore risultante
(a scanso di equivoci metti tutte le select tra parentesi e poi metti alias)

( (select ....) + (select ....) + ... ) as nome

se hai difficoltà posta la query ed il relativo errore

è necessario anche capire cosa contiene la funzione "loadObjectList"
 
Ultima modifica:

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
Esatto, nelle mille prove tra tutte le combinazioni possibili ho fatto anche:

PHP:
$query = "(SELECT SUM(me.count) as cnt,CONCAT(pl.first_name,' ',pl.last_name) as name, t.t_name,t.id as tid ,ev.e_img,ev.e_name,pl.id,pl.def_img FROM #__bl_match_events as me, #__bl_match as m, #__bl_matchday as md, #__bl_players as pl, #__bl_events as ev ,#__bl_teams as t  WHERE  t.id=pl.team_id AND ev.id=me.e_id AND me.e_id = ".$event_id." AND me.match_id = m.id AND m.m_played = 1 AND md.id=m.m_id AND md.s_id=".$s_id." AND me.player_id = pl.id  ".($team_id?' AND t.id='.$team_id:'')." GROUP BY me.player_id ORDER BY cnt desc LIMIT 15) 
/ 
(SELECT SUM(m.m_played) as cnt,CONCAT(pl.first_name,' ',pl.last_name) as name, t.t_name,t.id as tid ,ev.e_img,ev.e_name,pl.id,pl.def_img FROM #__bl_match_events as me, #__bl_match as m, #__bl_matchday as md, #__bl_players as pl, #__bl_events as ev ,#__bl_teams as t  WHERE  t.id=pl.team_id AND ev.id=me.e_id AND me.e_id = ".$event_id." AND me.match_id = m.id AND m.m_played = 1 AND md.id=m.m_id AND md.s_id=".$s_id." AND me.player_id = pl.id  ".($team_id?' AND t.id='.$team_id:'')." GROUP BY me.player_id ORDER BY cnt desc LIMIT 15)";

Si tratta di un'estensione di JoomSport Standard (gratuita). In poche parole la prima query somma dei valori e la divide per la seconda query. Le variabili sono numeri interi; entrambe le select restituiscono un valore poiché provate singolarmente funzionano bene.
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
la query che hai postato non potrà mai funzionare,
abbiamo detto che l'operazione aritmetica si può fare su due valori, nel caso specifico dividendo e divisore,
quindi la costruzione della query deve essere
PHP:
SELECT
  SUM(me.count) / ( SELECT SUM(m.m_played) FROM ..... ) as cnt,
  CONCAT(pl.first_name,' ',pl.last_name) as name, 
  t.t_name,
  t.id as tid ,
  ev.e_img,
  ev.e_name,
  pl.id,
  pl.def_img 
FROM
ma potrebbe essere anche
PHP:
SELECT
  ( SUM(me.count) / SUM(m.m_played) ) as cnt,
  CONCAT(pl.first_name,' ',pl.last_name) as name, .....
se ho capito bene la necessità
ma lascio a te il compito di comporre il tutto
 
Discussioni simili
Autore Titolo Forum Risposte Data
F access ricerca record con apostrofo. MS Access 0
F Cerco Hosting con VECCHIE versioni di php Hosting 0
C Come ricreare questo calcolatore di prezzi a step con woocommerce? WordPress 0
C Segnalo barra laterale di navigazione ASSENTE con Chrome Comunicazioni dallo Staff 5
G Guadagna dalla Vendita di Articoli Sponsorizzati con GuestPostMax.com! Guadagnare col Sito 0
P Hosting multidominio con Plesk Hosting 0
L Soluzione con INNER JOIN Database 0
S passare un valore da un form a un file .php con metodo post PHP 4
A Redirect 301 genera url statico con variabili Web Server 0
T problemi con dati menu a tendina HTML e CSS 2
T Query con date MS Access 1
F Url dinamiche da cambiare con categoria, subcategoria e title PHP 2
L Aiuto con DataGridView Visual Basic 1
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
G Problema con Xampp Web Server 1
M Aggiunta prodotti nel carrello con lo stesso in e varianti diverse PHP 0
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
B Non riesco a trovare i cognomi con i caratteri speciali in Access (Microsoft 365) MS Access 0
N Problema con position absolute e overflow HTML e CSS 4
M Estrarre soltanto i prodotti con stessa descrizione PHP 10
felino [Wordpress] Gallery con foto selezionabili dall'utente WordPress 0
G Invio di più valori con la stessa checkbox PHP 4
csi Inviare file jpg in locale alla stampante con php PHP 0
otto9due Proteggere una cartella e file con password tramite .htaccess e .htpasswd Web Server 0
I Form con selettore HTML e CSS 0
G phpmailer e php 8.1 con estensione mysqli PHP 6
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
N Vendo sito web di casino online con 1000 giochi Compravendita siti e domini 0
G form invio multiplo con checkbox PHP 12
L Query e selezione DB con $_POST PHP 2
K [PHP] Problema con variabili concatenate. PHP 1
R Dubbi su siti sviluppati con Wordpress e con codice WordPress 6
B Router e telecamere con pannello solare IP Cam e Videosorveglianza 0
Z Cerco ecommerce gratuito meglio se realizzato con Woocommerce di Wordpress. E-Commerce 0
S [CERCO] scambio di articoli con link Offerte e Richieste di scambio links 0
A Immagine decentrata con sfondo trasparente Photoshop 0
O problema con query PHP 4
Jensen Errore di sintassi con DELETE PHP 3
D Casella di testo con grassetto ecc... HTML e CSS 2
R Aprire maschera con Openform filtrando un campo testuale con un valore recuperato da un'altra maschera MS Access 10
G Query con i giorni della settimana MySQL 10
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
G Il mio sito dopo aver abilitato l'ssl non visualizza le immagini con indirizzi senza ssl HTML e CSS 0
A Connessione a mdb con php7 PHP 1
P errore 404 con javascript Javascript 2
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
M Unire 2 funzioni per l'invio di un form e con l'apertura di un div Javascript 0

Discussioni simili