Back to top

Autore Topic: QueryMultiple con DBQUERY  (Letto 3711 volte)

Offline rayman

  • Nuovo arrivato
  • *
  • Post: 7
    • Mostra profilo
QueryMultiple con DBQUERY
« il: 12 Mar 2008, 07:01:54 »
Salve a tutti

Avendo gia una certa dimestichezza con DBQUERY leggendo il tutorial in inglese  riesco non solo ad estrapolare i dati che mi servono dalle tabelle ma cosa piu importante creare le cosiddette "view" ovvero il pulsante "Dettagli" di ogni singolo record.
Adesso ho un problema:

Nello stesso report voglio che vengano fuori alcune colonne le quali sintatticamente risultano da diverse query

In dettaglio voglio che ad ogni ditta corrispondano due colonne  messe accanto dove risultino i soldi (somma) che deve ad oggi e alla stessa data del 2007

|  Ditta  |         Anno 2008         |           Anno 2007               |
|Nomeditta| Somma riferita a oggi 2008|Somma riferita stessa data ma  2007|

non entrando troppo nel dettaglio delle sintassi sql per fare ciò sono necessarie due query leggermente differenti

La mia domanda è :

è possibile , sempre con DBQUERY inserire più query SQL nella stessa voce DBQUERY-----> Query?COme? Con quale sintassi?


Grazie per l'eventuale supporto

Rayman

Offline marco0906

  • Nuovo arrivato
  • *
  • Post: 49
  • Sesso: Maschio
    • Mostra profilo
Re: QueryMultiple con DBQUERY
« Risposta #1 il: 12 Mar 2008, 10:09:08 »
ciao rayman ,
puoi spiegarti un po meglio?
Citazione
Nello stesso report voglio che vengano fuori alcune colonne le quali sintatticamente risultano da diverse query
???
Una query che pesca da piu di una tabella?
Guarda tutti i tuoi video e film preferiti e scoprine di nuovi.. Veedeo ti permette di visualizzare di video aggregandoli dai migliori media provider della rete. Buon divertimento !

Offline rayman

  • Nuovo arrivato
  • *
  • Post: 7
    • Mostra profilo
Re: QueryMultiple con DBQUERY
« Risposta #2 il: 12 Mar 2008, 15:49:23 »
No è una query che pesca dalla stessa tabella ma in due condizioni differenti ovvero:


A me interessa mostrare dei report dove sulla colonna 1 ci trovo le ditte nella colonna due i soldi(somma) dei soldi che ogni ditta deve relative all'anno 2008 e nella terza colonna sempre la somma dei soldi in credito ma riferita al 2007
ora nella tabella ho il campo Ditta il campo Data in formato aaaa-mm-gg e il campo soldi

io ho fatto
SELECT
Ditta AS $<d_ditta>,
SUM(soldi) AS $<soldi2008>,
SUM(soldi AS $<soldi2007>
WHERE soldi >0 (per eliminare i campi vuoti ( IS NOT NULL da errore)
AND Data >= 2008-01-01
GROUP BY Ditta

Mi spunta una tabella con i tre campi Ditta (raggruppato) Soldi 2008 (somma) e Soldi 2007 ( somma) L'unico problema che le due colonne danno risultato identico . Cosa posso fare per differenziare le condizioni ? Voglio che la colonna soldi 2008 abbia la condizione WHERE Data >= 2008-01-01 (così si autoaggiorna) e la colonna Soldi 2007  abbia la condizione WHERE Dat BETWEEN  2007-12-31 AND 2007-01-01

Grazie per ogni valido aiuto

Rayman

Offline marco0906

  • Nuovo arrivato
  • *
  • Post: 49
  • Sesso: Maschio
    • Mostra profilo
Re: QueryMultiple con DBQUERY
« Risposta #3 il: 12 Mar 2008, 17:52:09 »
(manca la FROM nella tua query ma penso tu la abbia dimenticata di scrivere :))

SELECT
a.Ditta AS $<d_ditta>,
SUM(a.soldi) AS $<soldi2008>,
SUM(b.soldi) AS $<soldi2007>
From tuatabella a,tuatabella b
WHERE soldi >0
AND a.Data >= 2008-01-01 and b.data BETWEEN  2007-12-31 AND 2007-01-01

GROUP BY Ditta

Praticamente dai due alias divesi alla stessa tabella e le metti in join e tutto dovrebbe andare ok.
Citazione
(per eliminare i campi vuoti ( IS NOT NULL da errore)
dovresti provare la LEFT JOIN

ciao buon lavoro
Guarda tutti i tuoi video e film preferiti e scoprine di nuovi.. Veedeo ti permette di visualizzare di video aggregandoli dai migliori media provider della rete. Buon divertimento !

Offline marco0906

  • Nuovo arrivato
  • *
  • Post: 49
  • Sesso: Maschio
    • Mostra profilo
Re: QueryMultiple con DBQUERY
« Risposta #4 il: 12 Mar 2008, 17:57:00 »
non capisco perche non mi fa modificare il post cmq..
una correzione

SELECT
a.Ditta AS $<d_ditta>,
SUM(a.soldi) AS $<soldi2008>,
SUM(b.soldi) AS $<soldi2007>
From tuatabella a,tuatabella b
WHERE a.soldi >0 and b.soldi >0
AND a.Data >= 2008-01-01 and b.data BETWEEN  2007-12-31 AND 2007-01-01

GROUP BY Ditta
Guarda tutti i tuoi video e film preferiti e scoprine di nuovi.. Veedeo ti permette di visualizzare di video aggregandoli dai migliori media provider della rete. Buon divertimento !

Offline rayman

  • Nuovo arrivato
  • *
  • Post: 7
    • Mostra profilo
Re: QueryMultiple con DBQUERY
« Risposta #5 il: 12 Mar 2008, 18:22:52 »
Certamente quello che ho tralasciato a scrivere qui nel post è stata una mera dimenticanza formale .
Proverò quello che mi suggerisci speriamo che vada tutto bene intanto ti ringrazio per il validissimo aiuto

RayMan

Offline rayman

  • Nuovo arrivato
  • *
  • Post: 7
    • Mostra profilo
Re: QueryMultiple con DBQUERY
« Risposta #6 il: 12 Mar 2008, 21:43:32 »
Marco ho provato la query secondo le tue indicazioni e di primo acchitto mi dava errore ma poi facendo alcune prove sono riuscito a venirne a capo ovvero le condizioni le ho cambiate così

WHERE a.Data >= 2008-01-01 and a.soldi >0
AND b.Data <= 2007-12-31 and b.soldi >0

GROUP by a.Ditta

Comunque ti ringrazio per avermi dato l'illuminazione degli Alias perche adesso che dovrò inserire altre colonne mi vedrò a creare c. d. e. f. e via discorrendo

Quando avrò altri intoppi potrò abusare della tua disponibilità?

RayMan

Offline marco0906

  • Nuovo arrivato
  • *
  • Post: 49
  • Sesso: Maschio
    • Mostra profilo
Re: QueryMultiple con DBQUERY
« Risposta #7 il: 13 Mar 2008, 12:36:22 »
oops è vero ho dimenticato di mettere GROUP BY a.Ditta... ::)
Citazione
Quando avrò altri intoppi potrò abusare della tua disponibilità?
Ovviamente :)

ciao e buon lavoro
Guarda tutti i tuoi video e film preferiti e scoprine di nuovi.. Veedeo ti permette di visualizzare di video aggregandoli dai migliori media provider della rete. Buon divertimento !

Offline rayman

  • Nuovo arrivato
  • *
  • Post: 7
    • Mostra profilo
Re: QueryMultiple con DBQUERY
« Risposta #8 il: 13 Mar 2008, 19:45:11 »
Quii le cose si complicano seguendo le stesse sintassi ho aggiunto altre due colonne con Alias "c" e "d"

SELECT
a.Ditta AS $<d_ditta>,
SUM(a.soldi) AS $<soldi2008>,
SUM(b.soldi) AS $<soldi2007>,
SUM(c.soldi) AS $<c_soldi2008>,
SUM(d.soldi) AS $<d_soldi2007>
From tuatabella a,tuatabella b, tuatabella c, tuatabella d
WHERE a.Data >= 2008-01-01 and a.soldi >0 and a.Tipo_Ditta = 'Mercantile'
AND b.data <= 2007-12-31 and b.soldi >0 and b.Tipo_Ditta = 'Mercantile'
AND c.Data >= 2008-01-01 and c.soldi >0 and c.Tipo_Ditta = 'Commerciale'
AND d.Data >= 2008-01-01 and d.soldi >0 and d.Tipo_Ditta = 'Commerciale'
GROUP BY a.Ditta

Spero che la schifezza che ho fatto sia quantomeno comprensibile :
In prativa voglio 5 colonne

1) Lista delle ditte
2) somma dei soldi delle ditte mercantili anno 2008
3) somma dei soldi delle ditte mercantili anno 2007
4) somma dei soldi delle ditte Commerciali anno 2008
5) somma dei soldi delle ditte Commerciali anno 2007

Con questa sintassi mi da errore e con piccoli accorgimenti mi da numeri tutti sballati e sicuramente non veritieri

Ti ringrazio in anticipo per ogni tuo valido consiglio!!!

Offline marco0906

  • Nuovo arrivato
  • *
  • Post: 49
  • Sesso: Maschio
    • Mostra profilo
Re: QueryMultiple con DBQUERY
« Risposta #9 il: 13 Mar 2008, 19:58:40 »
mmmm...
Citazione
AND c.Data >= 2008-01-01 and c.soldi >0 and c.Tipo_Ditta = 'Commerciale'
AND d.Data >= 2008-01-01 and d.soldi >0 and d.Tipo_Ditta = 'Commerciale'
GROUP BY a.Ditta
non so se sia questo l'errore o è un semplice errore di trascrizione ma la WHERE condition della somma dei soldi delle ditte Commerciali anno 2007 mi pare sbagliata visto che è identica a la WHERE condition della somma dei soldi delle ditte Commerciali anno 2008!

AND c.Data >= 2008-01-01 and c.soldi >0 and c.Tipo_Ditta = 'Commerciale'
AND d.Data <= 2007-12-31 and d.soldi >0 and d.Tipo_Ditta = 'Commerciale'

Guarda tutti i tuoi video e film preferiti e scoprine di nuovi.. Veedeo ti permette di visualizzare di video aggregandoli dai migliori media provider della rete. Buon divertimento !

Offline rayman

  • Nuovo arrivato
  • *
  • Post: 7
    • Mostra profilo
Re: QueryMultiple con DBQUERY
« Risposta #10 il: 13 Mar 2008, 20:12:01 »
si un errore ma eventualmente non è possibile impostare la cosa in un altro modo magari utilizzando un SELF JOIN?

Che ne pensi?

Rayman

 



Web Design Bolzano Kreatif