以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 统计不重复值计数 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92187)
|
-- 作者:fubblyc
-- 发布时间:2016/10/28 10:45:00
-- 统计不重复值计数
因为foxtable自带的统计功能不能统计 不重复的计数值,
所以想这样做:
一个订单明细视图,想增加一个列,用来写单数:
此主题相关图片如下:单数.png
类似与excel表格的if函数,如果和上一行一样,就写0,不一样,就写1.
在sql能实现吗?
|
-- 作者:有点蓝
-- 发布时间: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
-- 发布时间:2016/10/29 11:50:00
--
可以了,谢谢 有点蓝 老师!!
|
-- 作者:fubblyc
-- 发布时间: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编辑过]
|
-- 作者:有点蓝
-- 发布时间: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
-- 发布时间:2016/11/14 10:49:00
--
靠,原来是这个低级错误。。。不好意思。。
这样是可以,但是加载速度超级慢。
用第一种的直接在 数据表 update 是不是会快一点。
|
-- 作者:有点色
-- 发布时间:2016/11/14 10:52:00
--
不要每次都重复查。
直接update一次,查询的时候直接查。
|
-- 作者:fubblyc
-- 发布时间:2016/11/14 10:58:00
--
好的,谢谢 有点蓝,有点色 老师!!
|
-- 作者:fubblyc
-- 发布时间: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编辑过]
|
-- 作者:有点青
-- 发布时间: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()
|