Foxtable(狐表)用户栏目专家坐堂 → 统计不重复值计数


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

主题:统计不重复值计数

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
统计不重复值计数  发帖心情 Post By:2016/10/28 10:45:00 [只看该作者]

因为foxtable自带的统计功能不能统计 不重复的计数值,

所以想这样做:

 

一个订单明细视图,想增加一个列,用来写单数:


图片点击可在新窗口打开查看此主题相关图片如下:单数.png
图片点击可在新窗口打开查看

 

类似与excel表格的if函数,如果和上一行一样,就写0,不一样,就写1.

在sql能实现吗?


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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/28 11:03:00 [只看该作者]

重复的更新为0
update {表C} set 第二列='0' where 第一列 in (select 第一列 from {表C} group by 第一列 having count(*) > 1) and [_Identify] not in  (select min([_Identify]) from {表C} group by 第一列 having count(*) > 1)

剩下的全部更新为1
update {表C} set 第二列='1' where 第二列 is null

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/10/29 11:50:00 [只看该作者]

可以了,谢谢 有点蓝  老师!!


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/11/14 10:04:00 [只看该作者]

SELEC T
[门店],
[单号],
_Identify,
case when ([单号] in (selec t [单号] from dbo.[销售明细] group by [单号] having count(*) > 1) and [_Identify] not in  (selec t min([_Identify]) from [单号] group by [单号] having count(*) > 1)) then 0 end as 单数

FROM
dbo.[销售明细]

 

提示错误:单号 对象名 无效


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20161114100538.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2016/11/14 10:06:06编辑过]

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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/14 10:29:00 [只看该作者]

SELEC T
[门店],
[单号],
_Identify,
case when ([单号] in (selec t [单号] from dbo.[销售明细] group by [单号] having count(*) > 1) and [_Identify] not in  (selec t min([_Identify]) from [
销售明细] group by [单号] having count(*) > 1)) then 0 end as 单数

FROM
dbo.[销售明细]


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/11/14 10:49:00 [只看该作者]

靠,原来是这个低级错误。。。不好意思。。

 

这样是可以,但是加载速度超级慢。

 

用第一种的直接在 数据表 update 是不是会快一点。


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/11/14 10:52:00 [只看该作者]

 不要每次都重复查。

 

 直接update一次,查询的时候直接查。


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/11/14 10:58:00 [只看该作者]

好的,谢谢 有点蓝,有点色 老师!!

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/11/14 13:58:00 [只看该作者]

为什么如下代码需要执行两次才会有结果:

Dim cm d As New SQLCommand

cmd.commandtext = "updat e {销售明细} set 单数 = 1 where 单数 is null"
cmd.ExecuteNonQuery()
DataTables("销售明细").Load()

 

执行一次没有反应

[此贴子已经被作者于2016/11/14 14:01:17编辑过]

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


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2016/11/14 16:11:00 [只看该作者]

 可能是延迟问题。等一等看行不行

 

Dim cm d As New SQLCommand

cmd.commandtext = "updat e {销售明细} set 单数 = 1 where 单数 is null"
cmd.ExecuteNonQuery()

 

msgbox(333)


DataTables("销售明细").Load()


 回到顶部
总数 21 1 2 3 下一页