我是新手编码(新手)。
在工作地点,我有以下操作:
A)我有表A. B)我有表B. C)我需要输出表C(我如何得到它?)
我在这里详细描述:
输入表A和B:
输出表C:
我必须为许多文件获取输出表C,因此很难在Excel中使用Excel中的copy和past选项匹配Order和Order-1。
非常感谢您对此进行调查。
如果问题不明确,请道歉。
如果您需要有关此方面的任何进一步信息,请与我们联系。
答案 0 :(得分:1)
您可以尝试获取两个表中的UNION
:
SELECT Time, Type, User, '', Order-1, Urea
FROM TableA
UNION ALL
SELECT Time, '', User, Order, Order-1, Urea
FROM TableB
ORDER BY Time
如果您没有真正使用MySQL,那么您不应该像这样标记您的问题,这会产生类似这样的答案。
答案 1 :(得分:1)
这是SQL的Vba。练习子myQuery。
Dim Ws As Worksheet
Dim strSQL As String
Sub myQuery()
Set Ws = Sheets("C")
strSQL = "SELECT Time, Type, User, '' as [Order], [Order-1], Urea"
strSQL = strSQL & " FROM [A$] where not isnull(Time) "
strSQL = strSQL & " Union All "
strSQL = strSQL & "SELECT Time, '', User, [Order], [Order-1], Urea "
strSQL = strSQL & "FROM [B$] where not isnull(time) "
strSQL = strSQL & "ORDER BY Time "
DoSQL
End Sub
Sub DoSQL()
Dim Rs As Object
Dim strConn As String
Dim i As Integer
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ThisWorkbook.FullName & ";" & _
"Extended Properties=Excel 12.0;"
Set Rs = CreateObject("ADODB.Recordset")
Rs.Open strSQL, strConn
If Not Rs.EOF Then
With Ws
.Range("a1").CurrentRegion.Clear
For i = 0 To Rs.Fields.Count - 1
.Cells(1, i + 1).Value = Rs.Fields(i).Name
Next
.Range("a" & 2).CopyFromRecordset Rs
.Columns(1).NumberFormatLocal = "[$-409]mm/dd/yy h:mm AM/PM;@"
End With
End If
Rs.Close
Set Rs = Nothing
End Sub