如何合并这两个 Access Sql 查询
How Can I merge these two Access Sql queries
我想将这两个查询合并为一个查询。
这是代码。
两者都是 table,但您会看到来自不同部分的不同数据。
就是想做一个查询一条记录
> DoCmd.RunSQL "insert into Report (id, [date], namep , [NEXTC],
> [Nurse])" & _ " values (" & Chr(34) & x & Chr(34) & " ," & Chr(34) & b
> & Chr(34) & "," & "5," & _ " " & Chr(34) & c & Chr(34) & ", " &
> Chr(34) & n & Chr(34) & ")"
还有这个
DoCmd.RunSQL "INSERT INTO Report ( brand, Bag, Acc, Id , NameP)" & _
"Select Top 1 * from" & _
"(SELECT TOP 1 Brand FROM (SELECT * FROM Report WHERE ID=" & _
x & _
") WHERE Brand IS NOT NULL ORDER BY date DESC Union All SELECT top 1 null FROM report WHERE Brand IS NULL) AS Brand," & _
"(SELECT TOP 1 Bag FROM (SELECT * FROM Report WHERE ID=" & _
x & _
") WHERE Bag IS NOT NULL ORDER BY date DESC Union All SELECT top 1 null FROM report WHERE Bag IS NULL) AS Bag," & _
"(SELECT TOP 1 ACC FROM (SELECT * FROM Report WHERE ID=" & _
x & _
") WHERE ACC IS NOT NULL ORDER BY date DESC Union All SELECT top 1 null FROM report WHERE ACC IS NULL) AS ACC," & _
"(SELECT TOP 1 ID FROM Report WHERE ID=" & _
x & _
") AS ID," & _
"( SELECT TOP 1 NameP FROM Report WHERE ID=" & _
x & _
") as NameP;"
您的查询不清楚,但您的查询应该是这样的:
INSERT INTO Report (id, [date], namep , [NEXTC], [Nurse], brand, Bag, Acc, Id , NameP)
SELECT TOP 1 'value1', 'value2', ..., FROM yourTable ...
value1
、value2
可能是统计数据,但您也可以从 yourtable
中获取一些值
测试一下,它应该可以工作(可能有些括号不对,使用前检查一下):
DoCmd.RunSQL "insert into Report (id, [date], namep , [NEXTC], [Nurse], brand, Bag, Acc, Id , NameP)" & _
" values (" & Chr(34) & x & Chr(34) & " ," & Chr(34) & b & Chr(34) & "," & "5," & _
" " & Chr(34) & c & Chr(34) & ", " & Chr(34) & n & Chr(34) & ", " & _
"(SELECT TOP 1 Brand FROM (SELECT * FROM Report WHERE ID=" & x & _
") WHERE Brand IS NOT NULL ORDER BY date DESC Union All SELECT top 1 null FROM report WHERE Brand IS NULL) AS Brand " & ", " & _
"(SELECT TOP 1 Bag FROM (SELECT * FROM Report WHERE ID=" & x & _
") WHERE Bag IS NOT NULL ORDER BY date DESC Union All SELECT top 1 null FROM report WHERE Bag IS NULL) AS Bag " & ", " & _
"(SELECT TOP 1 ACC FROM (SELECT * FROM Report WHERE ID=" & x & _
") WHERE ACC IS NOT NULL ORDER BY date DESC Union All SELECT top 1 null FROM report WHERE ACC IS NULL) AS ACC " & ", " & _
"(SELECT TOP 1 ID FROM Report WHERE ID=" & x & ") AS ID," & _
"( SELECT TOP 1 NameP FROM Report WHERE ID=" & x & ") as NameP )"
我想将这两个查询合并为一个查询。 这是代码。 两者都是 table,但您会看到来自不同部分的不同数据。 就是想做一个查询一条记录
> DoCmd.RunSQL "insert into Report (id, [date], namep , [NEXTC],
> [Nurse])" & _ " values (" & Chr(34) & x & Chr(34) & " ," & Chr(34) & b
> & Chr(34) & "," & "5," & _ " " & Chr(34) & c & Chr(34) & ", " &
> Chr(34) & n & Chr(34) & ")"
还有这个
DoCmd.RunSQL "INSERT INTO Report ( brand, Bag, Acc, Id , NameP)" & _
"Select Top 1 * from" & _
"(SELECT TOP 1 Brand FROM (SELECT * FROM Report WHERE ID=" & _
x & _
") WHERE Brand IS NOT NULL ORDER BY date DESC Union All SELECT top 1 null FROM report WHERE Brand IS NULL) AS Brand," & _
"(SELECT TOP 1 Bag FROM (SELECT * FROM Report WHERE ID=" & _
x & _
") WHERE Bag IS NOT NULL ORDER BY date DESC Union All SELECT top 1 null FROM report WHERE Bag IS NULL) AS Bag," & _
"(SELECT TOP 1 ACC FROM (SELECT * FROM Report WHERE ID=" & _
x & _
") WHERE ACC IS NOT NULL ORDER BY date DESC Union All SELECT top 1 null FROM report WHERE ACC IS NULL) AS ACC," & _
"(SELECT TOP 1 ID FROM Report WHERE ID=" & _
x & _
") AS ID," & _
"( SELECT TOP 1 NameP FROM Report WHERE ID=" & _
x & _
") as NameP;"
您的查询不清楚,但您的查询应该是这样的:
INSERT INTO Report (id, [date], namep , [NEXTC], [Nurse], brand, Bag, Acc, Id , NameP)
SELECT TOP 1 'value1', 'value2', ..., FROM yourTable ...
value1
、value2
可能是统计数据,但您也可以从 yourtable
测试一下,它应该可以工作(可能有些括号不对,使用前检查一下):
DoCmd.RunSQL "insert into Report (id, [date], namep , [NEXTC], [Nurse], brand, Bag, Acc, Id , NameP)" & _
" values (" & Chr(34) & x & Chr(34) & " ," & Chr(34) & b & Chr(34) & "," & "5," & _
" " & Chr(34) & c & Chr(34) & ", " & Chr(34) & n & Chr(34) & ", " & _
"(SELECT TOP 1 Brand FROM (SELECT * FROM Report WHERE ID=" & x & _
") WHERE Brand IS NOT NULL ORDER BY date DESC Union All SELECT top 1 null FROM report WHERE Brand IS NULL) AS Brand " & ", " & _
"(SELECT TOP 1 Bag FROM (SELECT * FROM Report WHERE ID=" & x & _
") WHERE Bag IS NOT NULL ORDER BY date DESC Union All SELECT top 1 null FROM report WHERE Bag IS NULL) AS Bag " & ", " & _
"(SELECT TOP 1 ACC FROM (SELECT * FROM Report WHERE ID=" & x & _
") WHERE ACC IS NOT NULL ORDER BY date DESC Union All SELECT top 1 null FROM report WHERE ACC IS NULL) AS ACC " & ", " & _
"(SELECT TOP 1 ID FROM Report WHERE ID=" & x & ") AS ID," & _
"( SELECT TOP 1 NameP FROM Report WHERE ID=" & x & ") as NameP )"