Foxtable(狐表)用户栏目专家坐堂 → [求助] 请教老师帮忙指导写一个sql语句


  共有2786人关注过本帖树形打印复制链接

主题:[求助] 请教老师帮忙指导写一个sql语句

帅哥哟,离线,有人找我吗?
有点色
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/26 17:41:00 [显示全部帖子]

参考代码,把红色代码替换成50即可

 

select a.* from (Select 店铺名称, 货号, sum(订单数量) as 总数量 from {表c} group by 店铺名称, 货号) as a where 1 > (select count(*) from (Select 店铺名称, 货号, sum(订单数量) as 总数量 from {表c} group by 店铺名称, 货号) as b where b.店铺名称 = a.店铺名称 and b.总数量 > a.总数量 ) order by a.店铺名称, a.总数量

[此贴子已经被作者于2017/4/26 17:42:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/26 18:06:00 [显示全部帖子]

以下是引用ltty5200在2017/4/26 17:55:00的发言:
老师,我执行您的代码后,半天没有任何反应,是不是哪里错了?

 

是不是你的数据量太大?你做个有数据的例子上来看看,比如导入 1千行、1万行数据测试。


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/26 19:14:00 [显示全部帖子]

 不要用sql语句来做,结合代码

 

Dim idx As String = "-1,"
Dim idx_temp As String = ""
Dim pdr As DataRow = Nothing
Dim count As Integer = 0
Dim cs As String = "店铺名称"
For Each dr As DataRow In DataTables("表A").Select("", "店铺名称, 订单数量 desc")
    Dim flag As Boolean = False
    If pdr IsNot Nothing Then
        For Each c As String In cs.split(",")
            If pdr(c) <> dr(c) Then
                flag = True
                Exit For
            End If
        Next
    End If
    If flag Then
        idx &= idx_temp
        count = 1
        idx_temp = dr("_Identify") & ","
    Else
        count += 1
        If count <= 50 Then
            idx_temp &= dr("_Identify") & ","
        End If
    End If
   
    pdr = dr
Next
msgbox("查询完毕")
If count <= 50 Then
    idx &= idx_temp
End If
Tables("表A").filter = "_Identify in (" & idx.trim(",") & ")"
Tables("表A").sort = "店铺名称, 订单数量 desc"


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/26 22:25:00 [显示全部帖子]

以下是引用ltty5200在2017/4/26 22:12:00的发言:
谢谢老师耐心指导。但是如果不用表,非要用SQL查询的话有办法吗?求帮忙,尽量用sql,拜谢了。

 

如果你的是sqlserver数据库,可以用 ROW_NUMBER 函数

 

不然,就只能用子查询,效率比较低的 http://blog.csdn.net/u010032648/article/details/51464648

 


 回到顶部