access sql复杂查询语句求助

假设有下面这样一个表
列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 -”

1个回答

先按照 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
showbo
支付宝加好友偷能量挖 自己注意换行,回复里面没有办法换行
2 年多之前 回复
showbo
支付宝加好友偷能量挖 arr=split(sdate,",") l=ubound(arr) arrState=split("A,B,C,D",",")'日期所有状态,更加状态从这里添加 ll=ubound(arrState) for i=0 to l if arr(i)<>"" then for j=0 to ll key=arr(i)&" "&arrState(j) if kv.Exists(key) then response.Write key&" "&kv(key)&"<br>":else:response.Write key&" -<br>":end if next end if next
2 年多之前 回复
showbo
支付宝加好友偷能量挖 输出那里可以改成这样,a,b,c用数组来代替。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问