weixin_39127625 2017-06-21 06:29 采纳率: 60%
浏览 1092
已采纳

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条回答

  • Go 旅城通票 2017-06-21 07:16
    关注

    先按照 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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码