<f2>原表如下:
<table style="font-size:11px;border:1px #222222 solid;">
<tr><td>FVID</td><td>FVNumber</td><td>FAccNumber</td><td>FAccFullName</td><td>FVECount</td><td>FSupplierID</td><td>FAccNumber2</td></tr>
<tr><td>124</td><td>记-1</td><td>1133</td><td>其他应收款</td><td>0</td><td>02.001</td><td>1001</td></tr>
<tr><td>124</td><td>记-1</td><td>1001</td><td>现金</td><td>1</td><td></td><td>1133</td></tr>
<tr><td>146</td><td>记-23</td><td>2121.01</td><td>应付账款_大宗材料</td><td>0</td><td>01.02.001</td><td>1002.002</td></tr>
<tr><td>146</td><td>记-23</td><td>1002.002</td><td>银行存款_商业银行</td><td>1</td><td></td><td>2121.01</td></tr>
<tr><td>147</td><td>记-24</td><td>2121.02</td><td>应付账款_一般材料</td><td>0</td><td>02.12.003</td><td>1001</td></tr>
<tr><td>147</td><td>记-24</td><td>1001</td><td>现金</td><td>1</td><td></td><td>2121.02</td></tr>
<tr><td>148</td><td>记-25</td><td>1211.03.002</td><td>原材料_苇子_毛苇</td><td>0</td><td></td><td>1001</td></tr>
<tr><td>148</td><td>记-25</td><td>1001</td><td>现金</td><td>1</td><td></td><td>1211.03.002</td></tr>
<tr><td>290</td><td>记-156</td><td>1211.02</td><td>原材料_一般材料</td><td>0</td><td></td><td>2121.02</td></tr>
<tr><td>290</td><td>记-156</td><td>2171.01.01</td><td>应交税金_进项税额</td><td>1</td><td></td><td>2121.02</td></tr>
<tr><td>290</td><td>记-156</td><td>2121.02</td><td>应付账款_一般材料</td><td>2</td><td>02.11.002</td><td>1211.02</td></tr>
<tr><td>9666</td><td>记-27</td><td>2121.01</td><td>应付账款_大宗材料</td><td>0</td><td>01.01.138</td><td>1002.008</td></tr>
<tr><td>9666</td><td>记-27</td><td>1002.008</td><td>银行存款_大连银行</td><td>1</td><td></td><td>2121.01</td></tr>
<tr><td>9666</td><td>记-27</td><td>2121.01</td><td>应付账款_大宗材料</td><td>2</td><td>01.01.136</td><td>1002.008</td></tr>
<tr><td>9666</td><td>记-27</td><td>1002.008</td><td>银行存款_大连银行</td><td>3</td><td></td><td>2121.01</td></tr>
</table><f2>sql查询后新表如下:
<table style="font-size:11px;border:1px #222222 solid;">
<tr><td>FVID</td><td>FVNumber</td><td>FAccNumber</td><td>FAccFullName</td><td>FVECount</td><td style='font-weight:bold'>FSupplierID</td><td>FAccNumber2</td></tr>
<tr><td>124</td><td>记-1</td><td>1133</td><td>其他应收款</td><td>0</td><td style='font-weight:bold'>02.001</td><td>1001</td></tr>
<tr><td>124</td><td>记-1</td><td>1001</td><td>现金</td><td>1</td><td style='font-weight:bold'>02.001</td><td>1133</td></tr>
<tr><td>146</td><td>记-23</td><td>2121.01</td><td>应付账款_大宗材料</td><td>0</td><td style='font-weight:bold'>01.02.001</td><td>1002.002</td></tr>
<tr><td>146</td><td>记-23</td><td>1002.002</td><td>银行存款_商业银行</td><td>1</td><td style='font-weight:bold'>01.02.001</td><td>2121.01</td></tr>
<tr><td>147</td><td>记-24</td><td>2121.02</td><td>应付账款_一般材料</td><td>0</td><td style='font-weight:bold'>02.12.003</td><td>1001</td></tr>
<tr><td>147</td><td>记-24</td><td>1001</td><td>现金</td><td>1</td><td style='font-weight:bold'>02.12.003</td><td>2121.02</td></tr>
<tr><td>148</td><td>记-25</td><td>1211.03.002</td><td>原材料_苇子_毛苇</td><td>0</td><td style='font-weight:bold'></td><td>1001</td></tr>
<tr><td>148</td><td>记-25</td><td>1001</td><td>现金</td><td>1</td><td style='font-weight:bold'></td><td>1211.03.002</td></tr>
<tr><td>290</td><td>记-156</td><td>1211.02</td><td>原材料_一般材料</td><td>0</td><td style='font-weight:bold'>02.11.002</td><td>2121.02</td></tr>
<tr><td>290</td><td>记-156</td><td>2171.01.01</td><td>应交税金_进项税额</td><td>1</td><td style='font-weight:bold'>02.11.002</td><td>2121.02</td></tr>
<tr><td>290</td><td>记-156</td><td>2121.02</td><td>应付账款_一般材料</td><td>2</td><td style='font-weight:bold'>02.11.002</td><td>1211.02</td></tr>
<tr><td>9666</td><td>记-27</td><td>2121.01</td><td>应付账款_大宗材料</td><td>0</td><td style='font-weight:bold'>01.01.138</td><td>1002.008</td></tr>
<tr><td>9666</td><td>记-27</td><td>1002.008</td><td>银行存款_大连银行</td><td>1</td><td style='font-weight:bold'>01.01.138</td><td>2121.01</td></tr>
<tr><td>9666</td><td>记-27</td><td>2121.01</td><td>应付账款_大宗材料</td><td>2</td><td style='font-weight:bold'>01.01.136</td><td>1002.008</td></tr>
<tr><td>9666</td><td>记-27</td><td>1002.008</td><td>银行存款_大连银行</td><td>3</td><td style='font-weight:bold'>01.01.136</td><td>2121.01</td></tr>
</table>
<f2>非常感谢!!

解决方案 »

  1.   

    select 
      FVID, 
      FVNumber, 
      FAccNumber, 
      FAccFullName, 
      FVECount, 
      FSupplierID=(select top 1 FSupplierID from tb where FVID=t.FVID order by FSupplierID desc), 
      FAccNumber2, 
    from
      tb t
      

  2.   

    好像sqlcmd里面可以将数据导出网页,不知道这是否是导出数据,如果是的话,相信导入到数据库也不是难事。
      

  3.   

    原表如下:
    FVID | FVNumber | FAccNumber | FAccFullName | FVECount | FSupplierID | FAccNumber2
    124  | 记-1   | 1133        | 其他应收款        | 0 | 2.001     | 1001
    124  | 记-1   | 1001        | 现金              | 1 | Null      | 1133
    146  | 记-23  | 2121.01     | 应付账款_大宗材料 | 0 | 01.02.001 | 1002.002
    146  | 记-23  | 1002.002    | 银行存款_商业银行 | 1 | Null      | 2121.01
    147  | 记-24  | 2121.02     | 应付账款_一般材料 | 0 | 02.12.003 | 1001
    147  | 记-24  | 1001        | 现金              | 1 | Null      | 2121.02
    148  | 记-25  | 1211.03.002 | 原材料_苇子_毛苇  | 0 | Null      | 1001
    148  | 记-25  | 1001        | 现金              | 1 | Null      | 1211.03.002
    290  | 记-156 | 1211.02     | 原材料_一般材料   | 0 | Null      | 2121.02
    290  | 记-156 | 2171.01.01  | 应交税金_进项税额 | 1 | Null      | 2121.02
    290  | 记-156 | 2121.02     | 应付账款_一般材料 | 2 | 02.11.002 | 1211.02
    9666 | 记-27  | 2121.01     | 应付账款_大宗材料 | 0 | 01.01.138 | 1002.008
    9666 | 记-27  | 1002.008    | 银行存款_大连银行 | 1 | Null      | 2121.01
    9666 | 记-27  | 2121.01     | 应付账款_大宗材料 | 2 | 01.01.136 | 1002.008
    9666 | 记-27  | 1002.008    | 银行存款_大连银行 | 3 | Null      | 2121.01
    sql查询后新表如下:124  | 记-1   | 1133        | 其他应收款        | 0 | 2.001     | 1001
    124  | 记-1   | 1001        | 现金              | 1 | 2.001     | 1133
    146  | 记-23  | 2121.01     | 应付账款_大宗材料 | 0 | 01.02.001 | 1002.002
    146  | 记-23  | 1002.002    | 银行存款_商业银行 | 1 | 01.02.001 | 2121.01
    147  | 记-24  | 2121.02     | 应付账款_一般材料 | 0 | 02.12.003 | 1001
    147  | 记-24  | 1001        | 现金              | 1 | 02.12.003 | 2121.02
    148  | 记-25  | 1211.03.002 | 原材料_苇子_毛苇  | 0 | Null      | 1001
    148  | 记-25  | 1001        | 现金              | 1 | Null      | 1211.03.002
    290  | 记-156 | 1211.02     | 原材料_一般材料   | 0 | 02.11.002 | 2121.02
    290  | 记-156 | 2171.01.01  | 应交税金_进项税额 | 1 | 02.11.002 | 2121.02
    290  | 记-156 | 2121.02     | 应付账款_一般材料 | 2 | 02.11.002 | 1211.02
    9666 | 记-27  | 2121.01     | 应付账款_大宗材料 | 0 | 01.01.138 | 1002.008
    9666 | 记-27  | 1002.008    | 银行存款_大连银行 | 1 | 01.01.138 | 2121.01
    9666 | 记-27  | 2121.01     | 应付账款_大宗材料 | 2 | 01.01.136 | 1002.008
    9666 | 记-27  | 1002.008    | 银行存款_大连银行 | 3 | 01.01.136 | 2121.01
    非常感谢!!
      

  4.   


    select FVID,FVNumber,FAccNumber,FAccFullName,FVECount,
    FSupplierID=isnull(FSupplierID,(select top 1 FSupplierID from 表名 where FVID=a.FVID and FVECount<=a.FVECount order by FVECount desc))
    ,FAccNumber2
    from 表名 a
      

  5.   

    感谢josy版主每次的精彩代码,感谢pt1314917,
    我再详细说明一下:
    FVID:9666号凭证共有4笔分录并含2个供应商,
    FSupplierID=(select top 1 FSupplierID from tb where FVID=t.FVID order by FSupplierID desc)经测试后如下
    ……
    FVID …… FSupplierID    
    9666 …… 01.01.138
    9666 …… 01.01.138
    9666 …… 01.01.138
    9666 …… 01.01.138
    ……
    而需要结果如下:
    ……
    FVID …… FSupplierID    
    9666 …… 01.01.138
    9666 …… 01.01.138
    9666 …… 01.01.136
    9666 …… 01.01.136
    ……
    还望大力帮助!!谢谢!
      

  6.   

    290 | 记-156 | 1211.02 | 原材料_一般材料 | 0 | Null | 2121.02
    290 | 记-156 | 2171.01.01 | 应交税金_进项税额 | 1 | Null | 2121.02
    290 | 记-156 | 2121.02 | 应付账款_一般材料 | 2 | 02.11.002 | 1211.02
    9666 | 记-27 | 2121.01 | 应付账款_大宗材料 | 0 | 01.01.138 | 1002.008
    9666 | 记-27 | 1002.008 | 银行存款_大连银行 | 1 | Null | 2121.01
    9666 | 记-27 | 2121.01 | 应付账款_大宗材料 | 2 | 01.01.136 | 1002.008
    9666 | 记-27 | 1002.008 | 银行存款_大连银行 | 3 | Null | 2121.01按照什么规律来取的?
      

  7.   

    先找FVECount小于当前记录的,找不到再找FVECount大于当前记录的
    ---测试数据---
    if object_id('[tb]') is not null drop table [tb]
    go
    create table [tb]([FVID] int,[FVNumber] varchar(6),[FAccNumber] varchar(11),[FAccFullName] varchar(17),[FVECount] int,[FSupplierID] varchar(9),[FAccNumber2] varchar(11))
    insert [tb]
    select 124,'记-1','1133','其他应收款',0,'2.001','1001' union all
    select 124,'记-1','1001','现金',1,null,'1133' union all
    select 146,'记-23','2121.01','应付账款_大宗材料',0,'01.02.001','1002.002' union all
    select 146,'记-23','1002.002','银行存款_商业银行',1,null,'2121.01' union all
    select 147,'记-24','2121.02','应付账款_一般材料',0,'02.12.003','1001' union all
    select 147,'记-24','1001','现金',1,null,'2121.02' union all
    select 148,'记-25','1211.03.002','原材料_苇子_毛苇',0,null,'1001' union all
    select 148,'记-25','1001','现金',1,null,'1211.03.002' union all
    select 290,'记-156','1211.02','原材料_一般材料',0,null,'2121.02' union all
    select 290,'记-156','2171.01.01','应交税金_进项税额',1,null,'2121.02' union all
    select 290,'记-156','2121.02','应付账款_一般材料',2,'02.11.002','1211.02' union all
    select 9666,'记-27','2121.01','应付账款_大宗材料',0,'01.01.138','1002.008' union all
    select 9666,'记-27','1002.008','银行存款_大连银行',1,null,'2121.01' union all
    select 9666,'记-27','2121.01','应付账款_大宗材料',2,'01.01.136','1002.008' union all
    select 9666,'记-27','1002.008','银行存款_大连银行',3,null,'2121.01'
     
    ---查询---
    select 
      FVID, 
      FVNumber, 
      FAccNumber, 
      FAccFullName, 
      FVECount, 
      FSupplierID=isnull(
        (select top 1 FSupplierID from tb where FVID=t.FVID and FVECount<=t.FVECount and FSupplierID is not null order by FVECount desc),
        (select top 1 FSupplierID from tb where FVID=t.FVID and FSupplierID is not null order by FVECount desc)
        ),
      FAccNumber2 
    from
      tb t
    order by 1,5---结果---
    FVID        FVNumber FAccNumber  FAccFullName      FVECount    FSupplierID FAccNumber2
    ----------- -------- ----------- ----------------- ----------- ----------- -----------
    124         记-1      1133        其他应收款             0           2.001       1001
    124         记-1      1001        现金                1           2.001       1133
    146         记-23     2121.01     应付账款_大宗材料         0           01.02.001   1002.002
    146         记-23     1002.002    银行存款_商业银行         1           01.02.001   2121.01
    147         记-24     2121.02     应付账款_一般材料         0           02.12.003   1001
    147         记-24     1001        现金                1           02.12.003   2121.02
    148         记-25     1211.03.002 原材料_苇子_毛苇         0           NULL        1001
    148         记-25     1001        现金                1           NULL        1211.03.002
    290         记-156    1211.02     原材料_一般材料          0           02.11.002   2121.02
    290         记-156    2171.01.01  应交税金_进项税额         1           02.11.002   2121.02
    290         记-156    2121.02     应付账款_一般材料         2           02.11.002   1211.02
    9666        记-27     2121.01     应付账款_大宗材料         0           01.01.138   1002.008
    9666        记-27     1002.008    银行存款_大连银行         1           01.01.138   2121.01
    9666        记-27     2121.01     应付账款_大宗材料         2           01.01.136   1002.008
    9666        记-27     1002.008    银行存款_大连银行         3           01.01.136   2121.01(15 行受影响)
      

  8.   

    --> 测试数据:#
    if object_id('tempdb.dbo.#') is not null drop table #
    create table #(FVID int, FVNumber varchar(8), FAccNumber varchar(11), FAccFullName varchar(17), FVECount int, FSupplierID varchar(9), FAccNumber2 varchar(11))
    insert into #
    select 124, '记-1', '1133', '其他应收款', 0, '2.001', '1001' union all
    select 124, '记-1', '1001', '现金', 1, null, '1133' union all
    select 146, '记-23', '2121.01', '应付账款_大宗材料', 0, '01.02.001', '1002.002' union all
    select 146, '记-23', '1002.002', '银行存款_商业银行', 1, null, '2121.01' union all
    select 147, '记-24', '2121.02', '应付账款_一般材料', 0, '02.12.003', '1001' union all
    select 147, '记-24', '1001', '现金', 1, null, '2121.02' union all
    select 148, '记-25', '1211.03.002', '原材料_苇子_毛苇', 0, null, '1001' union all
    select 148, '记-25', '1001', '现金', 1, null, '1211.03.002' union all
    select 290, '记-156', '1211.02', '原材料_一般材料', 0, null, '2121.02' union all
    select 290, '记-156', '2171.01.01', '应交税金_进项税额', 1, null, '2121.02' union all
    select 290, '记-156', '2121.02', '应付账款_一般材料', 2, '02.11.002', '1211.02' union all
    select 9666, '记-27', '2121.01', '应付账款_大宗材料', 0, '01.01.138', '1002.008' union all
    select 9666, '记-27', '1002.008', '银行存款_大连银行', 1, null, '2121.01' union all
    select 9666, '记-27', '2121.01', '应付账款_大宗材料', 2, '01.01.136', '1002.008' union all
    select 9666, '记-27', '1002.008', '银行存款_大连银行', 3, null, '2121.01'
    --> 测试数据:#1
    if object_id('tempdb.dbo.#1') is not null drop table #1
    create table #1(FVID int, FVNumber varchar(8), FAccNumber varchar(11), FAccFullName varchar(17), FVECount int, FSupplierID varchar(9), FAccNumber2 varchar(11))
    insert into #1
    select 124, '记-1', '1133', '其他应收款', 0, '2.001', '1001' union all
    select 124, '记-1', '1001', '现金', 1, '2.001', '1133' union all
    select 146, '记-23', '2121.01', '应付账款_大宗材料', 0, '01.02.001', '1002.002' union all
    select 146, '记-23', '1002.002', '银行存款_商业银行', 1, '01.02.001', '2121.01' union all
    select 147, '记-24', '2121.02', '应付账款_一般材料', 0, '02.12.003', '1001' union all
    select 147, '记-24', '1001', '现金', 1, '02.12.003', '2121.02' union all
    select 148, '记-25', '1211.03.002', '原材料_苇子_毛苇', 0, null, '1001' union all
    select 148, '记-25', '1001', '现金', 1, null, '1211.03.002' union all
    select 290, '记-156', '1211.02', '原材料_一般材料', 0, '02.11.002', '2121.02' union all
    select 290, '记-156', '2171.01.01', '应交税金_进项税额', 1, '02.11.002', '2121.02' union all
    select 290, '记-156', '2121.02', '应付账款_一般材料', 2, '02.11.002', '1211.02' union all
    select 9666, '记-27', '2121.01', '应付账款_大宗材料', 0, '01.01.138', '1002.008' union all
    select 9666, '记-27', '1002.008', '银行存款_大连银行', 1, '01.01.138', '2121.01' union all
    select 9666, '记-27', '2121.01', '应付账款_大宗材料', 2, '01.01.136', '1002.008' union all
    select 9666, '记-27', '1002.008', '银行存款_大连银行', 3, '01.01.136', '2121.01'select
    FVID,
    FVNumber,
    FAccNumber,
    FAccFullName,
    FVECount,
    FSupplierID = case
    when FSupplierID is null then
    isnull
    (
    (select top 1 FSupplierID from # where FVID=t.FVID and FVECount<=t.FVECount and FSupplierID is not null order by FVECount desc),--向下填充
    (select top 1 FSupplierID from # where FVID=t.FVID and FVECount>=t.FVECount and FSupplierID is not null order by FVECount desc) --向上填充
    )
    else FSupplierID
    end,
    FAccNumber2
    from # t/*
    FVID        FVNumber FAccNumber  FAccFullName       FVECount    FSupplierID FAccNumber2
    ----------- -------- ----------- ------------------ ----------- ----------- -----------
    124         记-1      1133        其他应收款        0           2.001       1001
    124         记-1      1001        现金              1           2.001       1133
    146         记-23     2121.01     应付账款_大宗材料 0           01.02.001   1002.002
    146         记-23     1002.002    银行存款_商业银行 1           01.02.001   2121.01
    147         记-24     2121.02     应付账款_一般材料 0           02.12.003   1001
    147         记-24     1001        现金              1           02.12.003   2121.02
    148         记-25     1211.03.002 原材料_苇子_毛苇  0           NULL        1001
    148         记-25     1001        现金              1           NULL        1211.03.002
    290         记-156    1211.02     原材料_一般材料   0           02.11.002   2121.02
    290         记-156    2171.01.01  应交税金_进项税额 1           02.11.002   2121.02
    290         记-156    2121.02     应付账款_一般材料 2           02.11.002   1211.02
    9666        记-27     2121.01     应付账款_大宗材料 0           01.01.138   1002.008
    9666        记-27     1002.008    银行存款_大连银行 1           01.01.138   2121.01
    9666        记-27     2121.01     应付账款_大宗材料 2           01.01.136   1002.008
    9666        记-27     1002.008    银行存款_大连银行 3           01.01.136   2121.01
    */
      

  9.   

    好样的:josy!!  sqlcenter!! 
    这是金蝶K3财务软件>数据库>凭证表>自定义查询视图的一部分,两年多的凭证5万多行,
    我只是筛选具有代表性的几行,好让大师给出解决问题的思路和办法。其实经此查
    询后就可形成“应付账款>供应商”的自定义明细分类账了。我将继续测试,有想不到的
    再贴出来请大师帮忙!再一次谢过!!