Ricerca 
it-ITen-US
Registrazione
Accedi
In-Vesti Dotnetwork
IN-VESTI DNW!!!
Sono finalmente arrivate le nuovissime T-Shirt di DotNetWork!!! Con soli 15,00 € ci sosterrai nelle spese di gestione della Community e ti invieremo a casa una splendida maglietta.
Se vuoi contribuire al mantenimento di DotNetWork.it Vai sulla pagina Iscrizioni
Effettua il pagamento usando IWBank
Click per andare alla pagina di Iscrizione
Oppure un Bonifico bancario (le coordinate sono sulla pagina Iscrizioni), inviaci una mail a support@dotnetwork.it indicandoci la tua taglia e l'indirizzo di spedizione.  Non appena verificata la ricezione del pagamento provvederemo a spedirti la tua T-Shirt.  Le magliette sono disponibili nelle taglie S-M-L-XL-XXL (in caso di esaurimento di una delle taglie, indica quella di "Backup"). Grazie per IN-VESTIRTI con NOI!!!
.:DotNetWork Founders:.
    Stampa     


DotNetWork Forums
Aiuto query caramelle
Ultimo Post 16 lug 2009 12.36 by Alberto [MVP] (DNW TEAM). 10 Risposte.
Stampa immediata
Ordina:
PrevPrev ProssimoProssimo
Non sei autorizzato ad inviare una risposta.
Autore Messaggi Non risolto

Posts:657

--
16 lug 2009 09.30  
Sto aggiustando un vecchio programma Access VBA e mi sono bloccato qui:

Ho una tabella con le caratteristiche delle caramelle (uso le caramelle come a scuola per semplificare), e un magazzino di caramelle (tutte buone e di ogni tipo  )

Uso la seguente query per contarle:

SELECT caramelle.descrizione, SUM(magacaramelle.Qta) AS Totale, caramelle.scortaminima, caramelle.id FROM (articoli INNER JOIN magacaramelle ON caramelle.id = magacaramelle.idCaramella) GROUP BY magacaramelle.idCaramella, caramelle.descrizione, caramelle.scortaminima, caramelle.id

Ora mi servirebbe aggiungere una colonna alla query che mi dica se le caramelle sono sotto la scorta minima, cioè: se (Totale < caramelle.scortaminima) devo avere un campo che mi dice true, sennò false.

Come posso fare?
Rudy Azzan

Posts:662

--
16 lug 2009 09.39  
Come posso fare?

In Access aggiungi il campo:
IIF((SUM(magacaramelle.Qta) <= caramelle.scortaminima);True;False)
In SQL:
CASE WHEN (SUM(magacaramelle.Qta) <= caramelle.scortaminima) THEN 1 ELSE 0 END
HTH
Alberto.

Posts:657

--
16 lug 2009 10.11  
Mi da errore:

Error in list of function arguments: '<' not recognized. Unable to parse query text.
Rudy Azzan

Posts:662

--
16 lug 2009 10.21  
Error in list of function arguments: '<' not recognized
Lo stai facendo su Access o su SQL? Se usi i provider ODBC può darsi che alcuni caratteri non siano riconosciuti dal driver ODBC, quindi devi vedere se ci sono dei workaround in giro sul web.

Posts:657

--
16 lug 2009 10.46 Risposta accettata  
Si, ok il problema è che stavo facendo un dataset in VS2008 e ho capito che il wizard del cavolo, non capisce questa sintassi:
IIF((SUM(magacaramelle.Qta) <= caramelle.scortaminima);True;False)

che in Access funziona, lui capische solo il TSQL, quindi così:

CASE WHEN (SUM(magacaramelle.Qta) <= caramelle.scortaminima) THEN 1 ELSE 0

FUNZIONA in VS2008!!!
Rudy Azzan

Posts:657

--
16 lug 2009 10.49  
 non è vero, se eseguo la query mi tira un botto:

IErrorInfo.GetDescription failed with E_FAIL(0x80004005)
Rudy Azzan

Posts:662

--
16 lug 2009 11.27  
IIF((SUM(magacaramelle.Qta) <= caramelle.scortaminima);True;False)
Infatti questa è una sintassi prettamente Access... prova a fare una query su access e richiama la query tramite il DataAdapter, se hai bisogno di inserire i parametri metti "=?" sulla clausola WHERE di Access
HTH
Alberto.

Posts:657

--
16 lug 2009 11.32  
Si, ok, ma io volevo il mio dataset dal wizard e non posso ottenerlo...
Rudy Azzan

Posts:662

--
16 lug 2009 12.21  
Ma quale provider dati stai utilizzando?

Posts:662

--
16 lug 2009 12.29  
Altro metodo se lo vuoi dal dataset è aggiungere una colonna calcolata direttamente nel dataset con l'espressione:
[Totale]>=[ScortaMinima]
HTH
Alberto

Posts:662

--
16 lug 2009 12.36  
Prova a scriverla così:
SELECT caramelle.descrizione, SUM(magacaramelle.Qta) AS Totale, caramelle.scortaminima,IIF((Totale >= caramelle.scortaminima), True, False) AS SottoScorta, caramelle.id FROM (articoli INNER JOIN magacaramelle ON caramelle.id = magacaramelle.idCaramella) GROUP BY magacaramelle.idCaramella, caramelle.descrizione, caramelle.scortaminima, caramelle.id

Ti darà un Warning ma poi funziona.
HTH
Alberto.
Non sei autorizzato ad inviare una risposta.

Active Forums 4.1
       
Articoli
Bitmap, GDI+,Collezioni,Classi
Classi e oggetti per usare la GDI+ per disegnare delle forme.
2009/06/06 | Autore: Sabrina Cosolo
Unit Testing del codice (parte 1)
Le basi per la costruzione di test per rendere più solido il nostro codice
2007/12/26 | Autore: Sabrina Cosolo
ADO.NET Funzionalità di base
Effettuare una ricerca su recordset disconnessi tramite DataView
2007/12/02 | Autore: Andrea Zingoni
Unit testing del codice (parte 2)
Generiamo alcuni unit test per la libreria Helper base ADO.NET
2008/03/09 | Autore: Sabrina Cosolo
Codedom Introduzione all'uso parte2
Costruire il generatore di codice
2009/11/07 | Autore: Sabrna Cosolo
Panoramica del Sistema dei Comandi
Come iniziare a capire com'è fatto WPF (parte 5)
2007/09/30 | Autore: Patrizia Cosolo
Programmer Paster Addin per Expression Web 1 e 2
Implementare un Addin per Expression Web 1 e 2 che usa la libreria ProgrammerPaster
2009/02/26 | Autore: Rudy Azzan
Miniguida alla OOP con il .NET Framework- Parte I
Come prendere per mano un tipico programmatore VB6
2008/07/27 | Autore: Alberto De Luca
    Stampa     
Home|Forums|Blogs|Mappa del sito
© 2007-2010 by DotNetWork  .:.  Condizioni d'uso  .:.  Privacy  .:.  Accedi  .:.