Foxtable(狐表)用户栏目专家坐堂 → 去掉不符合条件的行


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

主题:去掉不符合条件的行

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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
去掉不符合条件的行  发帖心情 Post By:2017/2/27 19:30:00 [只看该作者]

<WebMethod()>
    Public Function GetState2Refine(ByVal ddh As String, ByVal ddhh As String, ByVal wlbm As String, ByVal rjbb As String, ByVal lhbbh As String) As String
        Dim cnStr As String = "Data Source=172.16.11.201;Initial Catalog=songjiang;Integrated Security=False;User ID=sa;Password=bdcom103liujy;"
        Dim cn As New SqlClient.SqlConnection(cnStr)
        cn.Open()
        Dim adapter, adapter1 As SqlClient.SqlDataAdapter
        Dim strSql As String = ""

        If ddh = "" Or ddhh = "" Or ddh = "null" Or ddhh = "null" Then
            Dim state1 As String
            state1 = "订单号或者订单行号不能为空"
            Return state1

            'adapter = New SqlClient.SqlDataAdapter("sele ct * from [可用数量表]  where  物料编码 = '" & wlbm & "' and 软件版本 = '" & rjbb & "' and 两化表编号 like '% " & lhbbh & "%'", cn)
        Else
            Dim filter As String = "1=1"
            If wlbm = "null" Then
                filter &= " and 物料编码 is null"
            ElseIf wlbm > "" Then
                filter &= " and Convert(varchar, 物料编码) = '" & wlbm & "'"
            End If

            If lhbbh = "null" Then
                filter &= " and 两化表编号 is null"
            ElseIf lhbbh > "" Then
                filter &= " and Convert(varchar, 两化表编号) = '" & lhbbh & "'"
            End If

            If rjbb = "null" Then
                filter &= " and 软件版本 is null"
            ElseIf rjbb > "" Then
                filter &= " and Convert(varchar, 软件版本) = '" & rjbb & "'"
            End If
            Dim filter1 As String = "(订单号 <> '" & ddh & "') and (订单行号 <> '" & ddhh & "') and "
            MsgBox(filter1)
            strSql = "sele ct * from [可用数量表]  where " & filter1 & filter
            MsgBox(strSql)
            adapter = New SqlClient.SqlDataAdapter(strSql, cn)
            Dim dt, dt1 As New DataTable
            adapter.Fill(dt)
            cn.Close()            
                Dim state As String = OrderQueryBLL.ConvertToJsonObject(dt)
                Return state
        End If
    End Function
比如下面的表。希望找出订单号不等于ddh同时订单行号也不等于ddhh。
订单号=021610056且订单行号=1共有3行。我需要返回的是剩余的2行。
但红色的filter1.就把所有订单号=021610056和订单行号=1都去掉了,所以只返回第一行,其实第三行也应该返回才对。

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


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109442 积分:556866 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/2/27 20:44:00 [只看该作者]

"sele ct [可用数量表].* from [可用数量表] Inner join (Sel ect 主键 from [可用数量表] where 订单号='" & ddh  & "' and 订单行号='" & ddhh  & "') as b
on [可用数量表].主键 <> b.主键 where " & filter

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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2017/2/27 23:06:00 [只看该作者]

返回的结果仍然包括"orderNo":"021610056","orderLineNo":"1"。另外怎么都是重复的。
[{"rootWorks":[{"_Identify":"1334","workNo":"SC20161102001","workLineNo":"12","orderNo":"021609076","orderLineNo":"2","productNo":"XKSWI-SWI1774B","swVersion":"同博达","oemSpecialNo":"","count":"10","Storage_time":"2017-02-16 18:51:10"},{"_Identify":"1334","workNo":"SC20161102001","workLineNo":"12","orderNo":"021609076","orderLineNo":"2","productNo":"XKSWI-SWI1774B","swVersion":"同博达","oemSpecialNo":"","count":"10","Storage_time":"2017-02-16 18:51:10"},{"_Identify":"1334","workNo":"SC20161102001","workLineNo":"12","orderNo":"021609076","orderLineNo":"2","productNo":"XKSWI-SWI1774B","swVersion":"同博达","oemSpecialNo":"","count":"10","Storage_time":"2017-02-16 18:51:10"},{"_Identify":"1335","workNo":"SC20161101001","workLineNo":"19","orderNo":"021610056","orderLineNo":"1","productNo":"XKSWI-SWI1774B","swVersion":"同博达","oemSpecialNo":"","count":"16","Storage_time":"2017-02-16 18:51:14"},{"_Identify":"1335","workNo":"SC20161101001","workLineNo":"19","orderNo":"021610056","orderLineNo":"1","productNo":"XKSWI-SWI1774B","swVersion":"同博达","oemSpecialNo":"","count":"16","Storage_time":"2017-02-16 18:51:14"},{"_Identify":"1354","workNo":"SC20160905001","workLineNo":"25","orderNo":"021610007","orderLineNo":"1","productNo":"XKSWI-SWI1774B","swVersion":"同博达","oemSpecialNo":"","count":"41","Storage_time":"2017-02-16 18:55:06"},{"_Identify":"1354","workNo":"SC20160905001","workLineNo":"25","orderNo":"021610007","orderLineNo":"1","productNo":"XKSWI-SWI1774B","swVersion":"同博达","oemSpecialNo":"","count":"41","Storage_time":"2017-02-16 18:55:06"},{"_Identify":"1354","workNo":"SC20160905001","workLineNo":"25","orderNo":"021610007","orderLineNo":"1","productNo":"XKSWI-SWI1774B","swVersion":"同博达","oemSpecialNo":"","count":"41","Storage_time":"2017-02-16 18:55:06"},{"_Identify":"1380","workNo":"SC20161101001","workLineNo":"32","orderNo":"021610056","orderLineNo":"1","productNo":"XKSWI-SWI1774B","swVersion":"同博达","oemSpecialNo":"","count":"183","Storage_time":"2017-02-16 19:07:30"},{"_Identify":"1380","workNo":"SC20161101001","workLineNo":"32","orderNo":"021610056","orderLineNo":"1","productNo":"XKSWI-SWI1774B","swVersion":"同博达","oemSpecialNo":"","count":"183","Storage_time":"2017-02-16 19:07:30"},{"_Identify":"1381","workNo":"096627040","workLineNo":"32","orderNo":"021610056","orderLineNo":"1","productNo":"XKSWI-SWI1774B","swVersion":"同博达","oemSpecialNo":"","count":"1","Storage_time":"2017-02-16 19:07:33"},{"_Identify":"1381","workNo":"096627040","workLineNo":"32","orderNo":"021610056","orderLineNo":"1","productNo":"XKSWI-SWI1774B","swVersion":"同博达","oemSpecialNo":"","count":"1","Storage_time":"2017-02-16 19:07:33"}],"wareCode":"30"}]


strSql = "se lect [可用数量表].* from [可用数量表] Inner join (Se lect _Identify from [可用数量表] where 订单号='" & ddh & "' and 订单行号='" & ddhh & "') as b  on [可用数量表]._Identify <> b._Identify where " & filter


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

       

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109442 积分:556866 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/2/28 8:40:00 [只看该作者]

导这个表部分数据出来测试一下

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


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

参考这里编写sql语句

 

http://blog.csdn.net/a11085013/article/details/8549256

 


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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2017/2/28 11:17:00 [只看该作者]



测试,真是不对啊。
   <WebMethod()>
    Public Function GetState2Refine(ByVal ddh As String, ByVal ddhh As String, ByVal wlbm As String, ByVal rjbb As String, ByVal lhbbh As String) As String
        Dim cnStr As String = "Data Source=172.16.11.201;Initial Catalog=songjiang;Integrated Security=False;User ID=sa;Password=bdcom103liujy;"
        Dim cn As New SqlClient.SqlConnection(cnStr)
        cn.Open()
        Dim adapter, adapter1 As SqlClient.SqlDataAdapter
        Dim strSql As String = ""

        If ddh = "" Or ddhh = "" Or ddh = "null" Or ddhh = "null" Then
            Dim state1 As String
            state1 = "订单号或者订单行号不能为空"
            Return state1
        Else
            Dim filter As String = "1=1"
            If wlbm = "null" Then
                filter &= " and 物料编码 is null"
            ElseIf wlbm > "" Then
                filter &= " and Convert(varchar, 物料编码) = '" & wlbm & "'"
            End If

            If lhbbh = "null" Then
                filter &= " and 两化表编号 is null"
            ElseIf lhbbh > "" Then
                filter &= " and Convert(varchar, 两化表编号) = '" & lhbbh & "'"
            End If

            If rjbb = "null" Then
                filter &= " and 软件版本 is null"
            ElseIf rjbb > "" Then
                filter &= " and Convert(varchar, 软件版本) = '" & rjbb & "'"
            End If
            Dim filter1 As String = "(订单号 <> '" & ddh & "') or (订单行号 <> '" & ddhh & "') and "


            strSql = "s elect [可用数量表] * from [可用数量表] Inner join (S elect _Identify from [可用数量表] where 订单号='" & ddh & "' and 订单行号='" & ddhh & "') as b  on [可用数量表]._Identify <> b._Identify where " & filter
            

            MsgBox(strSql)

            adapter = New SqlClient.SqlDataAdapter(strSql, cn)

            Dim dt As New DataTable
            adapter.Fill(dt)

            cn.Close()
            
                Dim state As String = OrderQueryBLL.ConvertToJsonObject(dt)
                Return state

        End If
    End Function哪里出问题了?

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

导出数据测试


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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2017/2/28 11:36:00 [只看该作者]


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

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

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

请帮忙看看。

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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2017/2/28 11:37:00 [只看该作者]

什么是导出数据测试?
我现在就是用真实的数据测试的。

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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2017/2/28 11:40:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:table1.png
图片点击可在新窗口打开查看
红色的三行需要去掉。只找出剩余的2行。

 回到顶部
总数 16 1 2 下一页