SELECT che non fa quello che voglio AIUTO!!!!!

di Anonimizzato480 il
27 risposte
Salve a tutti,
QUALCUNO MI DEVE AIUTAREEEEEE!!!!!
io ho inserito nel mio programma questa SELECT che leggete sotto ma non fa esattamente quello che voglio...ora spiego!! Deve estrapolarmi da una database di contratti tutti quelli che mi sono stati pagati per il loro effettivo valore, comprensivo di ampliamenti e altro associato al quel contratto! Il problema sta nel fatto che la prima istruzione della WHERE non funziona, cioè per esempio...lei cerca nella tabella Ampliamenti se esistono ampliamenti al contratto e somma il valore di questi ampliamenti al valore del contratto, ma se non trova nessun ampliamento la somma non la fa e quindi non verifica la condizione,mentre io vorrei che ritornasse 0 così che la somma la fa e può verificare se la condizione è verificata o no!!!!

Qualcuno mim può aiutare PER FAVORE??????

La SELECT è la seguente:

SELECT Contratti.IDCont as Num, Contratti.DataEOE as Data,
Anagrafica_Clienti.RagSoc as Intestatario,
Contratti.Catprod as Categoria, Contratti.DescProd as Descrizione,
Contratti.NADSL as ADSL, Contratti.NFisse as Linee,Contratti.NFisseULL as ULL,
Contratti.NSimTot as SIM, Contratti.NSimMNP as SimMNP, Contratti.NGPRS as GPRS,
(SELECT SUM(Ampliamenti.ValAmp) FROM Ampliamenti WHERE (Ampliamenti.IDCont=Contratti.IDCont)) as ValoreAmp€,
(SELECT SUM(Apparati.ValContr) FROM Apparati WHERE (Apparati.IDCont=Contratti.IDCont)) as ValoreApp€,
Contratti.ValContr as ValoreContr€
FROM Contratti,Anagrafica_Clienti
WHERE (

LA CONDIZIONE IN QUESTIONE E' LA SEGUENTE:

((SELECT SUM(Pagamenti.TotPag) FROM Pagamenti WHERE(Pagamenti.NumContr=Contratti.IDCont))
=
Contratti.ValContr
+
(SELECT SUM(Ampliamenti.ValAmp) FROM Ampliamenti WHERE(Ampliamenti.IDCont=Contratti.IDCont))+
(SELECT SUM(Apparati.ValContr) FROM Apparati WHERE(Apparati.IDCont=Contratti.IDCont)))


AND Contratti.IDCliente=Anagrafica_Clienti.ID)
ORDER BY Contratti.DataEOE,Anagrafica_Clienti.RagSoc

27 Risposte

  • Mi potresti dire che tipo di database si tratta?

    Fabian
  • Si tratta di un database di Access...puoi darmi una mano?
  • Se si tratta di Access 97 o 2000, ti posso aiutare ma non ho le tabelle per le verifiche.
    <i>1.</i>se voi manarmi il database zipato. Cosi te lo restituisco con una Query che e compresso tutto.
    <i>2.</i>altri menti provi a usare i seguenti Istruzuioni nella Query:
    INNER JOIN , LEFT JOIN , RIGHT JOIN

    Fabian
  • E' un database access 2000...cmq va bene te lo mando zippato però è un po pesante...ah un'altra cosa...io ho interfacciato il database con C++ Builder anche se usi quei comandi li va bene lo stesso??A me basti che funzioni...come posso mandarti il database?
  • Ho dimenticato l' email mailto:

    Fabian
  • L'email l'ho spedita aspetto una tua risposta e...ti ringrazio tanto!
    Ciao a dopo...
  • Ho perso il tuo e-mail con il Database

    Fabian
  • Adesso l'ho rispedito ok?
  • Sei riuscito a fare qualcosa?
  • Sto iniziando a capire qualche cosa.
    La tabella Pagamenti e vuota, per questo motivo non riesci a selezionare dei record.
    Fammi sapere.

    Fabian
  • Togli la tabella 'Pagamenti' e usa quella 'Pagamenti(copia)' rinominala con il nome 'Pagamenti', perchè quella vera è quella è solo che sto facendo delle prove per altre cose e non volevo toccarlo ok?
  • Non Riesco Capiere la Select sul Pagato:
    ((SELECT SUM(Pagamenti.TotPag) FROM Pagamenti WHERE(Pagamenti.NumContr=Contratti.IDCont))
    =
    Contratti.ValContr
    +
    (SELECT SUM(Ampliamenti.ValAmp) FROM Ampliamenti WHERE(Ampliamenti.IDCont=Contratti.IDCont))+
    (SELECT SUM(Apparati.ValContr) FROM Apparati WHERE(Apparati.IDCont=Contratti.IDCont)))


    Fabian
  • In pratica somma tutti i pagamenti che sono stati effettuati a quel contratto dopodichè li confronta con il valore del contratto sommato agli ampliamenti e ai contratti, se equivale deve farmelo vedere altrimenti no capito?
  • Ho Fatto una Verifica sui dati nessuna fa questo che voi.
    Se condo me ti confondi con Valore€ = Pagato:
    WHERE ((((SELECT SUM(Pagamenti.TotPag) FROM Pagamenti WHERE (Pagamenti.NumContr=Contratti.IDCont)))=Contratti.ValContr))


    Fabian
Devi accedere o registrarti per scrivere nel forum
27 risposte