Query con risultato errato
Inviato: domenica 8 novembre 2020, 18:09
Ciao a tutti,
sto iniziando ad usare le query per avere dei report al volo.
Nel caso che propongo io ho 3 tabelle
A Clienti
B tickets
C Rapporti di intervento
le relazioni fra le tabelle sono fatte tramite il campo società per i Tickets e CAMPO CORRISPONDENTE ID CLIENTE per i rapporti di intervento.
Avrei bisogno di avere una lista di Società con il totale di ore tickets e ore lavoro rapporto di intervento.
Se sviluppo la query con union il risultato va bene ma ho sempre 2 righe di risultato per ogni società,
qualora usi la funzione Join ottengo una riga per cliente ma il risultato delle ore è completamente sbagliato.
Dove sbaglio?
----
Query errata:
EseguiSQL (
"(SELECT DISTINCT Clienti.\"Società\",
SUM ( Tickets.\"Tempo totale\" ),
SUM ( \"Dati rapporto intervento\".\"Report Ore lavoro\")
FROM \"Clienti\"
JOIN Tickets
ON Clienti.\"Società\" = Tickets.\"Società\"
JOIN \"Dati rapporto intervento\"
ON Clienti.\"CAMPO CORRISPONDENTE ID CLIENTE\" = \"Dati rapporto intervento\".\"CAMPO CORRISPONDENTE ID CLIENTE\"
GROUP BY Clienti.\"Società\")
"
; ";" ; "¶"
)
---
Query con valori giusti ma con due righe ogni cliente:
EseguiSQL (
"SELECT Clienti.\"Società\", SUM ( Tickets.\"Tempo totale\" )
FROM \"Clienti\"
INNER JOIN Tickets
ON Clienti.\"Società\" = Tickets.\"Società\"
GROUP BY Clienti.\"Società\"
UNION
SELECT Clienti.\"Società\",
SUM ( \"Dati rapporto intervento\".\"Report Ore lavoro\")
FROM \"Clienti\"
INNER JOIN \"Dati rapporto intervento\"
ON Clienti.\"CAMPO CORRISPONDENTE ID CLIENTE\" = \"Dati rapporto intervento\".\"CAMPO CORRISPONDENTE ID CLIENTE\"
GROUP BY Clienti.\"Società\"
"
; ";" ; "¶"
)
Grazie per l'aiuto
sto iniziando ad usare le query per avere dei report al volo.
Nel caso che propongo io ho 3 tabelle
A Clienti
B tickets
C Rapporti di intervento
le relazioni fra le tabelle sono fatte tramite il campo società per i Tickets e CAMPO CORRISPONDENTE ID CLIENTE per i rapporti di intervento.
Avrei bisogno di avere una lista di Società con il totale di ore tickets e ore lavoro rapporto di intervento.
Se sviluppo la query con union il risultato va bene ma ho sempre 2 righe di risultato per ogni società,
qualora usi la funzione Join ottengo una riga per cliente ma il risultato delle ore è completamente sbagliato.
Dove sbaglio?
----
Query errata:
EseguiSQL (
"(SELECT DISTINCT Clienti.\"Società\",
SUM ( Tickets.\"Tempo totale\" ),
SUM ( \"Dati rapporto intervento\".\"Report Ore lavoro\")
FROM \"Clienti\"
JOIN Tickets
ON Clienti.\"Società\" = Tickets.\"Società\"
JOIN \"Dati rapporto intervento\"
ON Clienti.\"CAMPO CORRISPONDENTE ID CLIENTE\" = \"Dati rapporto intervento\".\"CAMPO CORRISPONDENTE ID CLIENTE\"
GROUP BY Clienti.\"Società\")
"
; ";" ; "¶"
)
---
Query con valori giusti ma con due righe ogni cliente:
EseguiSQL (
"SELECT Clienti.\"Società\", SUM ( Tickets.\"Tempo totale\" )
FROM \"Clienti\"
INNER JOIN Tickets
ON Clienti.\"Società\" = Tickets.\"Società\"
GROUP BY Clienti.\"Società\"
UNION
SELECT Clienti.\"Società\",
SUM ( \"Dati rapporto intervento\".\"Report Ore lavoro\")
FROM \"Clienti\"
INNER JOIN \"Dati rapporto intervento\"
ON Clienti.\"CAMPO CORRISPONDENTE ID CLIENTE\" = \"Dati rapporto intervento\".\"CAMPO CORRISPONDENTE ID CLIENTE\"
GROUP BY Clienti.\"Società\"
"
; ";" ; "¶"
)
Grazie per l'aiuto