以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教实例 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99281) |
||||
-- 作者:hbhb -- 发布时间:2017/4/16 13:59:00 -- 请教实例 大师:见实例,请问如何快速求出表a中,任意两列值之和相等的两列的列名? 结果应为:第四列与第五列?
|
||||
-- 作者:有点蓝 -- 发布时间:2017/4/16 14:36:00 -- Dim clst As new List(of String) For Each c As Col In Tables("表A").Cols If c.IsNumeric Then clst.Add(c.Name) Next If clst.Count > 0 Then Dim s1 As String = "select \'{0}\' as 列名, sum({0}) as 合计 from {表A}" Dim sql As String For Each cn As String In clst sql &= CExp(s1,cn) & " union all " Next sql = "select * from (" & sql.SubString(0,sql.Length - 10) & ") as a order by a.合计" Output.Show(sql) Dim cmd As new SQLCommand cmd.CommandText = sql Dim dt As DataTable = cmd.ExecuteReader s1 =dt.DataRows(0)("列名") For i As Integer = 1 To dt.DataRows.Count-1 If dt.DataRows(i-1)("合计") = dt.DataRows(i)("合计") Then s1 &= "," & dt.DataRows(i)("列名") Else Output.Show(s1) s1 =dt.DataRows(i)("列名") End If Next Output.Show(s1) End If |
||||
-- 作者:hbhb -- 发布时间:2017/4/16 14:52:00 -- 谢谢!SQL语句头疼,能否来个简单的不用sql语句,用字典怎么搞? |
||||
-- 作者:有点蓝 -- 发布时间:2017/4/16 15:10:00 -- 那就只能循环所有列,逐个使用Compute求和,然后在比较求和结果 |
||||
-- 作者:hbhb -- 发布时间:2017/4/16 15:15:00 -- 再请教个附加题 如何求得表a中的某一列的列名,条件是:此列的记录末位字符有4个以上是数字,且有从1-4的顺序排列。也就是模糊判断求得一张表中哪一列是编号列??
|