假设有下面这样一个表
列1 列2 列3
1/1 A 0.1
1/1 B 0.1
1/1 C 0.1
1/2 A 0.1
1/2 B 0.1
1/3 A 0.1
1/3 C 0.1
1/4 B 0.1
1/4 C 0.1
现在如何通过Access select查询到如下结果
列1 列2 列3
1/1 A 0.1
1/1 B 0.1
1/1 C 0.1
1/2 A 0.1
1/2 B 0.1
1/2 C -
1/3 A 0.1
1/3 B -
1/3 C 0.1
1/4 A -
1/4 B 0.1
1/4 C 0.1
说明:以1/1~1/4日期为查询条件(具体使用时日期未定)
若当日不存在数据则以“-”代替。
如:1/2 C是没有数据的,所以就输出“1/2 C -”
先按照 order by 列1 相同日期的放一起,然后组合成你http://ask.csdn.net/questions/392577这个问题里面的字符,直接sql处理不出你那种效果
下面这个示例居于你上个问题进行处理,要组合成你上个问题的字符串先
str="1/1,A,0.1*1/1,B,0.2*1/2,A,0.2*1/3,B,0.2*1/4,C,0.1"
arr=split(str,"*")
l=ubound(arr)
sdate=","
set kv=server.CreateObject("scripting.dictionary")
for i=0 to l
itemarr=split(arr(i),",")
if instr(sdate,","&itemarr(0)&",")=0 then sdate=sdate&itemarr(0)&","'搜集所有日期
kv.Add itemarr(0)&" "&itemarr(1),itemarr(2)
next
''''输出
arr=split(sdate,",")
l=ubound(arr)
for i=0 to l
if arr(i)<>"" then
key=arr(i)&" A"
if kv.Exists(key) then response.Write key&" "&kv(key)&"<br>":else:response.Write key&" -<br>":end if
key=arr(i)&" B"
if kv.Exists(key) then response.Write key&" "&kv(key)&"<br>":else:response.Write key&" -<br>":end if
key=arr(i)&" C"
if kv.Exists(key) then response.Write key&" "&kv(key)&"<br>":else:response.Write key&" -<br>":end if
''''更加多状态
end if
next
set kv=nothing