SQL join con creazione campo calcolato

mercoledì 06 giugno 2012 - 08.05
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Windows 7  |  Visual Studio Express  |  Access (.mdb)

olmof Profilo | Junior Member

Hola
Non riesco a far funzionare questa query:
SELECT a.codice, descrizione, g.QtaIvent, g.ValInven, g.QtaCar, g.Valcar, g.QtaSca, g.Valsca, (g.QtaIvent + g.QtaCar - g.QtaSca) AS Disponibili
FROM Articoli AS a INNER JOIN [MS ACCESS;Database=c:\azienda12\midama2012.mdb].Giacenze AS g ON a.codice=g.codice;

o meglio funziona tutto ma il campo Disponibili rimane desolatamente vuoto. Ho scoperto perchè: non sempre i campi sommati sono valorizzati. Allora ho provato ad utilizzare il CAST ma non ho capito bene il funzionamento. Alloro ho provato NZ che funziona in Access ma in VB.NET mi dà errore.
Potete darmi una mano?
Grazie

PS i campi sommati sono tutti a Precisione Doppia

renarig Profilo | Expert

>SELECT a.codice, descrizione, g.QtaIvent, g.ValInven, g.QtaCar,
>g.Valcar, g.QtaSca, g.Valsca, (g.QtaIvent + g.QtaCar - g.QtaSca)
>AS Disponibili
>FROM Articoli AS a INNER JOIN [MS ACCESS;Database=c:\azienda12\midama2012.mdb].Giacenze
>AS g ON a.codice=g.codice;
>
>Allora ho provato ad utilizzare il CAST ma non ho capito bene il funzionamento.
>Alloro ho provato NZ che funziona in Access ma in VB.NET mi dà errore.

Cast non c'entra, ( lui serve a trasformare numeri in testi, testi in numeri, ecc )
mentre tu hai gia numeri e ti servono numeri

Nz è la soluzione giusta in Access ma non so in VB.Net


prova con Case

CASE WHEN g.QtaIvent IsNull THEN 0 ELSE g.QtaIvent END



Non conosco VB.Net quello che ti ho detto 90% è sbagliato



olmof Profilo | Junior Member

>prova con Case
>
>CASE WHEN g.QtaIvent IsNull THEN 0 ELSE g.QtaIvent END
>
Ma questo come lo inserisco nella stringa sql?

Ho provato anche COALESCE ma stesso problema ceh con NZ.
Possibile non esista nulla?
Ciao

AGGIORNAMENTO:
ho trovato la soluzione: la posto nel caso servisse ad altri.
IIF(ISNULL(g.QtaIvent),0,g.QtaIvent)
Saluti
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5