Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Sql Server Estrazione dati anche non presenti
lunedì 01 marzo 2010 - 11.26
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
nandonando
Profilo
| Senior Member
398
messaggi | Data Invio:
lun 1 mar 2010 - 11:26
Ho tre tabelle
tabella1 campi :id_Tabella 1 ; Nome
tabella2 campi :id_Tabella 2 ; Tipo
tabella3 campi :id_Tabella 1 ; id_Tabella 2; testo
praticamente la terza è l'incrocio delle due tabelle con un dato legato è possibile con un'unica query estrarre i dati e nel momento in cui nella terza tabella quel valore non esiste comunque tirare fuori tipo nullo?
Grazie
http://www.gustoroma.it
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 1 mar 2010 - 11:43
ciao
>praticamente la terza è l'incrocio delle due tabelle con un dato
>legato è possibile con un'unica query estrarre i dati e nel momento
>in cui nella terza tabella quel valore non esiste comunque tirare
>fuori tipo nullo?
indicativamente basta usare delle outer join. Ma dovresti essere un po' più preciso nel presentare il problema.
Potresti postare qualche dato di tutte le tabelle e quello che vuoi ottenere?
>Grazie
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
nandonando
Profilo
| Senior Member
398
messaggi | Data Invio:
lun 1 mar 2010 - 11:50
Vi scrivo i cicli annidati che ho fatto ma non sò perchè è molro lento eppure sono circa 500 giri che fa in totale:
Dim strsqlISPETTORI As String = "select ID from tblIspettori"
Dim sqlTblISPETTORI As New SqlCommand(strsqlISPETTORI, cn)
Try
cn.Open()
Dim rdrISPETTORI As SqlDataReader = sqlTblISPETTORI.ExecuteReader(CommandBehavior.KeyInfo)
While rdrISPETTORI.Read()
''''''''''''''''''''''''''''
Dim strsqlTIPIVERIFICHE As String = "select ID from tblVERIFICHE_TIPI"
Dim sqlTblTIPIVERIFICHE As New SqlCommand(strsqlTIPIVERIFICHE, cn2)
Try
cn2.Open()
Dim rdrTIPIVERIFICHE As SqlDataReader = sqlTblTIPIVERIFICHE.ExecuteReader(CommandBehavior.KeyInfo)
While rdrTIPIVERIFICHE.Read()
'''''''''''''''''''
Dim strsqlPAGAMENTOISPETTORI As String = "SELECT dbo.TB_ISPETTORI_PAGAMENTO.*, ID_ISPETTORE, ID_VERIFICA_TIPO FROM dbo.TB_ISPETTORI_PAGAMENTO WHERE (ID_ISPETTORE = " & rdrISPETTORI.Item("ID") & " ) AND (ID_VERIFICA_TIPO = " & rdrTIPIVERIFICHE.Item("ID") & ")"
Dim sqlTblPAGAMENTOISPETTORI As New SqlCommand(strsqlPAGAMENTOISPETTORI, cn3)
Try
cn3.Open()
Dim rdrPAGAMENTOISPETTORI As SqlDataReader = sqlTblPAGAMENTOISPETTORI.ExecuteReader(CommandBehavior.KeyInfo)
If rdrPAGAMENTOISPETTORI.Read() Then
'M = M + 1
Else
M = M + 1
End If
cn3.Close()
Catch ex As Exception
cn3.Close()
End Try
'''''''''''''''''
End While
cn2.Close()
Catch ex As Exception
cn2.Close()
End Try
'''''''''''''''''''''''''
End While
cn.Close()
Catch ex As Exception
cn.Close()
End Try
http://www.gustoroma.it
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 1 mar 2010 - 12:00
>Vi scrivo i cicli annidati che ho fatto ma non sò perchè è molro
>lento eppure sono circa 500 giri che fa in totale:
ma come mai per fare l'ultima select fai tutti questi cicli?
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
nandonando
Profilo
| Senior Member
398
messaggi | Data Invio:
lun 1 mar 2010 - 12:09
In che senso?
intendi in if else end if?
se è cosi è perchè ad ognuno corrisponde un valore
altrimenti noti qualche errore logico?
http://www.gustoroma.it
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 1 mar 2010 - 12:17
>In che senso?
>intendi in if else end if?
no, intendo che questi tre cicli potrebbero essere una sola query.
Volevo capire se hai la necessità di fare cicli e quindi cursori.. Insomma, qual è la situazione reale?
magari risolvi tutto con una query.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
nandonando
Profilo
| Senior Member
398
messaggi | Data Invio:
lun 1 mar 2010 - 12:21
Un unica query magari!
E' quello che cerco di fare ci sono quasi ma in un modo un pò illogico
http://www.gustoroma.it
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 1 mar 2010 - 12:23
ti dicevo..
Potresti postare qualche dato di tutte le tabelle e quello che vuoi ottenere?
sarebbe ottimo avere un po' di dati di ognuna delle tre tabelle, e poi un esempio di output che ti serve.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
nandonando
Profilo
| Senior Member
398
messaggi | Data Invio:
lun 1 mar 2010 - 12:33
321x195
20Kb
321x194
21Kb
321x384
36Kb
Allora sono tre tabelle la prima ispettori seconda tipi verifiche e la terza è per il pagamento.
Ovviamente faccio una semplice query per tirare fuori dalla tabella pagamento ispettori i dati che si incociano tra verifiche tipi e ispettori ma me servirebbe che la query anche se non c'è un risultato (esempio quella determinato parametro per esempio non eè stato acnora caricato) comunque mi desse un risultato magari anche null.
Non sò se sono stato abbastanza chiaro.
http://www.gustoroma.it
Sono riuscito a creare solo 2 query ma è sempre lento gira circa 500 volte in 6-7 secondi è normale secondo voi?
Ho uso male i datareader?
O non devo proprio usarli.
Grazie
Torna su
Stanze Forum
Elenco Threads
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 !