Comesi fa una query dove usa la union in visula basic 2005?

giovedì 21 dicembre 2006 - 16.39

ken87 Profilo | Junior Member

Ho un altro problema come si usa la union in visual basic

mi sonnesso al database

connection.Open()

poi
fatto unione = " selsect a from tabella union sekect b from tabella2"


Dim prova3 As OleDbCommand = New OleDbCommand(unione, connection)

prova3.ExecuteNonQuery()

La terza istruzione quando l'ha metto da errore.
Se la tolgo non da errore

Ma dove me la mette il risultato della union.
Ho bisogno di metterlo in una tabella perche devo fare una joyn ?
potete aiutarmi?
grazie mille

ysdemarc Profilo | Expert

credo che ci sia un pò di confusione.

non comprendo bene

> Ma dove me la mette il risultato della union.
> Ho bisogno di metterlo in una tabella perche devo fare una joyn ?


se ti serve fare una join tra tabelle dove una di queste è il risultato di un unione tra due potresti scrivere così

select *
from tabella3 T3
inner join (select A AS campo
from tabella1
union select B as Campo
from tabella2) T1
on T1.A = T3.A (si suppone T3 contenga la colonna A con cui va in join)


Poi non riesco a capire il tuo prova3.ExecuteNonQuery(). Cioè se fai una select si presuppone che voglia in restituzione un dataset coi dati della select, quest'istruzioine penso che dovresti usarla per aggiornamenti (Update, Delete, Insert) .

per avere qualche dato dovresti fare all'incirca così


Dim cn As IDbConnection = New OleDbConnection(StringaDiConnessione)
cn.Open
Dim cm As IDbCommand = New OleDbCommand(sql, CType(cn, OleDbConnection))
Dim da As OleDbDataAdapter = New OleDbDataAdapter
da.SelectCommand = CType(cm, OleDbCommand)
Dim ds As DataSet = New DataSet
da.FillSchema(ds, SchemaType.Source)
da.Fill(ds)

a questo punto in ds avrai i tuoi dati

ciao
Vincenzo
Programmatore sbilenco

ken87 Profilo | Junior Member

saro piu preciso ho fatto queta query in acess funzionante ho riportata in visual basic cosi:

unione = ("SELECT Consuntivo.MATRICOLA, Consuntivo.RAG, Consuntivo.DATA," + "nz(budgetd.BG1_gen,0) AS bg1_gen," + _
"nz(Consuntivo.EFFMESE,0) AS Cons, [BG1_gen]-[cons] AS Scostamento, nz(budgetd.bgprog,0) AS bgprog," + _
" nz(Consuntivo.EFFANNO,0) AS Consprog, [bgprog]-[consprog] AS Scotprog" + _
"FROM budgetd right JOIN Consuntivo ON (budgetd.Badge=Consuntivo.MATRICOLA) AND (budgetd.Ragg=Consuntivo.RAG) AND (budgetd.data=Consuntivo.DATA" + _
"union" + "SELECT budgetd.Badge, budgetd.Ragg, budgetd.DATA, nz(budgetd.BG1_gen,0) AS bg1_gen, " + _
"nz(Consuntivo.EFFMESE,0) AS Cons, [BG1_gen]-[cons] AS Scostamento," + _
"nz(budgetd.bgprog,0) AS bgprog, nz(Consuntivo.EFFANNO,0) AS Consprog, [bgprog]-[consprog] AS Scotprog" + _
"FROM budgetd left JOIN Consuntivo ON (budgetd.data=Consuntivo.DATA) AND (budgetd.Ragg=Consuntivo.RAG) AND (budgetd.Badge=Consuntivo.MATRICOLA)")

Dim prova3 As OleDbCommand = New OleDbCommand(unione, connection)
Ora la devo trasferire in una nuova tabella
perche devo fargli fare un altra query che ha un join

E UN PO BRUTTINA LA QUERY MA NON HO TROVATO ALTRA SOLIZIONE .
infatti fa quello chedeve fare.
Come faccio a trsfewrire il tutto in un nuova tabella


ho provato a caricare il data set

ma mi scrive

L'istruzione SELECT include una parola riservata o un argomento scritto in modo errato o mancante oppure la punteggiatura non è corretta .

non sara per caso istruzione nz?

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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5