eseguire calcoli matematici su risultati 2 tabelle mysql

GioGio2020

Nuovo Utente
31 Mar 2020
11
1
3
Ciao a tutti, non sono esperto di PHP ma sto imparando,
ho cercato in google e sul forum ma forse non uso i termini giusti, vi spiego il problema:
in MySql ho 2 tabelle

manodopera

id | manodopera | prezzo | id_scheda

e la tabella

ricambi
id | ricambio | prezzo_vendita | id_scheda

Io voglio estrarre i record da entrambe le tabelle dove id_scheda viene usato come WHERE per associare i ricambi e la manodopera associati a una id_scheda e stamparli a video e sommare prezzo+prezzo_vendita e avere il totale


id_scheda (nelle due tabelle)ricambio o manodoperaprezzo
25schermo lcd samsung (ricambio)50
25Pellicola protettiva (ricambio)10
25sostituzione schermo (manodopera)30
25installazione pellicola5

totale: 95€

se qualcuno mi indirizza o mi dice qualche funzione poi cerco in internet (non chiedo la pappa pronta), non ho idea di come estrarre i record stamparli a video e sommarli, so fare solo select singole ma anche in questo caso non so come sommarli
grazie a tutti
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
sei nella sezione php, quindi dovresti poter scrivere il codice con questo linguaggio di programmazione,
potresti creare la pagina dove inserire i dati di ricerca della scheda, id, ma anche altri parametri se pensi a sviluppi futuri
questa pagina conterrà un "form" per passare i dati ad una seconda pagina che fa il lavoro di

connessione al db,
query per la ricerca delle informazioni
"scorrimento" del risultato della ricerca per listare a video degli elementi estratti dal db
magari con "codice", "descrizione", "quantità", "prezzo unitario", "qtà x prezzo" e "assoggettamento iva"
totalizzando il prezzo per riga (considerando l'iva) e riportando il totale dopo l'ultima riga

la query potrebbe essere costituita dall'unione di 2 query per semplificare il codice da scrivere
select ……. from manodopera
UNION
select ……. from materiali
avendo cura di indicare lo stesso numero di colonne con gli stessi nomi (vedi uso degli alias) nelle 2 select

nel sonnolento pomeriggio spero di aver scritto una traccia decente
 

GioGio2020

Nuovo Utente
31 Mar 2020
11
1
3
ciao, ti ringrazio per la risposta, posso fare anche due select distinte non è un problema però il mio problema è anche fare i totali dei costi e non so come fare
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
posso fare anche due select distinte
se fai due select distinte, devi raddoppiare (inutilmente) il codice,
anzi a mio parere viene bene un'unica query,
dove il tipo identifica il contenuto della riga selezionata, esempio
1 = manodopera, 2 = materiali, 3 = totalizzazioni x iva e 4 totale del documento (esclusa iva)

esempio

1587375739434.png


scusa, la colonna imponibile va letta per tipo, prezzo/imponibile/totale

l'esempio é ottenuto con questi dati e la query (unica) che segue
SQL:
DECLARE @manodopera Table
(
  id_scheda      int
, codart         varchar(10)
, desart         varchar(10)
, codiva         varchar(10)
, qta            float
, imponibile     float
);

INSERT INTO @manodopera(id_scheda, codart, desart, codiva, qta, imponibile)
SELECT 1, 'man1',  'desman1', 'iva1', 10, 10.15 UNION ALL
SELECT 1, 'man2',  'desman2', 'iva1', 11, 11.15 UNION ALL
SELECT 1, 'man3',  'desman3', 'iva2', 12, 12.15 UNION ALL
SELECT 1, 'man4',  'desman4', 'iva1', 13, 13.15;

DECLARE @materiali Table
(
  id_scheda      int
, codart         varchar(10)
, desart         varchar(10)
, codiva         varchar(10)
, qta            float
, imponibile     float
);

INSERT INTO @materiali(id_scheda, codart, desart, codiva, qta, imponibile)
SELECT 1, 'mat1',  'desmat1', 'iva1', 10, 10.15 UNION ALL
SELECT 1, 'mat2',  'desmat2', 'iva3', 11, 11.15 UNION ALL
SELECT 1, 'mat3',  'desmat3', 'iva1', 12, 12.15 UNION ALL
SELECT 1, 'mat4',  'desmat4', 'iva1', 13, 13.15;

select 1 as tipo, codart, desart, qta, imponibile, (qta * imponibile) as totale from @manodopera where id_scheda=1
union all
select 2 as tipo, codart, desart, qta, imponibile, (qta * imponibile) as totale from @materiali where id_scheda=1
union all
select 3 as tipo, codart, desart, sum(qta) as qta, sum(imponibile) as imponibile, sum(qta * imponibile) as totale from (
  select codiva as codart, 'desiva' as desart, qta, imponibile, (qta * imponibile) as totale from @manodopera where id_scheda=1
  union all
  select codiva as codart, 'desiva' as desart, qta, imponibile, (qta * imponibile) as totale from @materiali where id_scheda=1
) t1
group by codart, desart
union all
select 4 as tipo, codart, desart, sum(qta) as qta, sum(imponibile) as imponibile, sum(qta * imponibile) as totale from (
  select 'totale' as codart, 'totale' as desart, qta, imponibile, (qta * imponibile) as totale from @manodopera where id_scheda=1
  union all
  select 'totale' as codart, 'totale' as desart, qta, imponibile, (qta * imponibile) as totale from @materiali where id_scheda=1
) t2
group by codart, desart
 
Ultima modifica:
  • Like
Reactions: GioGio2020
Discussioni simili
Autore Titolo Forum Risposte Data
felino [Joomla 1.5] Backend senza toolbar, impossibile eseguire qualunque operazione Joomla 1
antoniomanuel Eseguire più files audio in sequenza Sviluppo app per Android 0
G Eseguire codice solo al termine della chiamata ajax Ajax 1
maxnegri Eseguire un'azione con php ad ogni condivisione su Facebook PHP 0
C Eseguire .sh da php PHP 6
W [Javascript] Eseguire script residente nel sistema da html remota Javascript 0
W Aiutino per compilare o eseguire un App Java Java 0
W [C#] Eseguire contemporaneamente tutti i Thresad su "Multithread" .NET Framework 0
G [Javascript] eseguire test-case Selenium da riga di comando... Javascript 0
P [Javascript] eseguire una funzione dopo un'altra Javascript 0
S [PHP] Eseguire differenza su dati SQL presenti sulla stessa colonna PHP 1
N eseguire pagina php senza aggiornare la pagina Ajax 3
S Eseguire funzione jquery all'interno della risposta ajax Ajax 0
A eseguire funzione dopo scelta dal form PHP 4
L eseguire programmi in c PHP 0
gandalf1959 Chiedere conferma all'utente prima di eseguire una funzione PHP 5
JackIlPazzo Eseguire funzione php senza ricaricare pagina? PHP 3
T [JavaScript & Ajax] Eseguire script dopo chiamata A Ajax 2
felino [Oracle] Eseguire uno split di un record Oracle 1
felino Funzione get_node(): eseguire un replace WordPress 1
J Eseguire un redirect a sito mobile PHP 0
N Eseguire una query MySQL dopo 10 secondi PHP 0
M Eseguire codice php contenuto in una variabile e salvarne il risultato in un'altra PHP 2
G Dividere stringa ed eseguire query PHP 3
F Eseguire PHP in jQuery jQuery 3
A eseguire codice js caricandolo dinamicamente in un DIV Javascript 2
ivarello eseguire exec() lato Client PHP 1
A eseguire codice html da funzione javascript Javascript 2
X Eseguire controllo su variabili php PHP 1
M eseguire un comando da php PHP 2
1 eseguire operazioni pianificate PHP 3
Z Eseguire una Query tramite linguaggi client-side è possibile? Ajax 3
M Ajax: eseguire chiamate cross-domain Ajax 1
S Eseguire controlli sul form delle foto PHP 17
I Eseguire funz. Javascript caricata tramite la funzione Ajax di JQuery in onChange Javascript 0
I Eseguire funz. Javascript caricata tramite la funzione Ajax di JQuery in onChange Javascript 0
G eseguire un ciclo for next su applicazione di un sito web Javascript 1
S [Vb.net] Eseguire un programma richiamando l'explorer di windows o il comando esegui .NET Framework 1
C Eseguire script ajax nella stessa pagina index.php Ajax 2
S [Vb.net] Eseguire un exe contenuto nel file di risorse .NET Framework 1
G eseguire gedit con shell_exec() PHP 3
neo996sps Eseguire script perl da pagina PHP PHP 3
I Eseguire foreach una volta PHP 4
I Eseguire query con ciclo PHP 2
I Eseguire query in funzione PHP 2
X eseguire due query aiuto PHP 1
N Eseguire codice javascript HTML e CSS 1
R Eseguire variabile da pulsante PHP 0
D Eseguire file exe su aruba Hosting 7
M Script da eseguire su più elementi div in una singola pagina web Javascript 0

Discussioni simili