我得到了这个小代码,我连接到数据库,选择数据并将数据写入文件。
...
sqlquery = ("select field1 as Asl, field2 as nCuen , field3 as nfac , "" as contr from [2016cl]")
Using connection As SqlConnection = New SqlConnection("server=" & srvSQL & ";database=" & bdSQL & ";uid=" & usrSQL & ";password=" & pswSQL & ";")
connection.Open()
Using comm As SqlCommand = New SqlCommand(sqlquery, connection)
Dim rs As SqlDataReader = comm.ExecuteReader
Dim dt As DataTable = New DataTable
dt.Load(rs)
Call clCreateCSV.CreateCSVFile(dt, strFileNameDiario)
End Using
connection.Close()
End Using
.....
Public Shared Sub CreateCSVFile(dt As DataTable, strFilePath As String)
Dim sw As New StreamWriter(strFilePath, False, Encoding.UTF8)
Dim iColCount As Integer = dt.Columns.Count
For Each dr As DataRow In dt.Rows
For i As Integer = 0 To iColCount - 1
If Not Convert.IsDBNull(dr(i)) Then
sw.Write(dr(i).ToString())
End If
If i < iColCount - 1 Then
sw.Write(";")
End If
Next
sw.Write(sw.NewLine)
Next
sw.Close()
End Sub
我需要在select(“”作为contr)上填充第4个值,其中另一个表连接到另一个中间表。
field3加入GFac.Gfac2上的另一个表 表Gfac加入CCli.ccli1上的第3个表 - &gt; 这是我在查询中需要的
可以只使用内连接但是,afaik只会获得验证连接的字段。
我怎么能这样做,写一些来自[2016cl]的 ALL 数据以及每个数据的字段控制(如果存在的话)?
提前致谢。如果您需要更多信息,请询问!
答案 0 :(得分:0)
使用LEFT JOIN代替INNER JOIN。
例如: SELECT * FROM TABLE1 LEFT JOIN TABLE2 ON ...
该查询选择TABLE1中的所有行。如果TABLE1中的行在TABLE2中没有匹配记录,那么TABLE2字段包含NULL。
希望有所帮助。