SQL:删除为给定密钥求零的行(附加Q.)

时间:2016-10-21 22:32:34

标签: sql-server

发现这个问题大约一年前已经得到解答,但我希望在此问题上进一步“建立”。原始响应在直接1:1情况下似乎为零。如果客户A的xyz金额和客户A的完全相同的-xyz金额的借方,则删除这两笔交易。我希望删除总和为零的多个金额的任何组合,以及1:1匹配。

假设客户A的交易为1.50,2.50,3.50,-2.00,-7.25,-4.00。我想删除[2.50,3.50,-2.00,-4.00]的交易并保留以下交易:[1.50,-7.25]

Raw Invoices

Filtered Invoices Result Set

提前致谢! 斯文

预期结果:

<style type="text/css">
    table.tableizer-table {
        font-size: 12px;
        border: 1px solid #CCC; 
        font-family: Arial, Helvetica, sans-serif;
    } 
    .tableizer-table td {
        padding: 4px;
        margin: 3px;
        border: 1px solid #CCC;
    }
    .tableizer-table th {
        background-color: #104E8B; 
        color: #FFF;
        font-weight: bold;
    }
</style>
<table class="tableizer-table">
<thead><tr class="tableizer-firstrow"><th>SysInvNum</th><th>Customer</th><th>Charges</th></tr></thead><tbody>
 <tr><td>11</td><td>100</td><td>1.50</td></tr>
 <tr><td>15</td><td>100</td><td>-7.25</td></tr>
 <tr><td>20</td><td>200</td><td>35.00</td></tr>
 <tr><td>24</td><td>300</td><td>10.00</td></tr>
 <tr><td>26</td><td>300</td><td>18.00</td></tr>
 <tr><td>30</td><td>400</td><td>300.00</td></tr>
 <tr><td>31</td><td>400</td><td>175.00</td></tr>
</tbody></table>

原始数据

<style type="text/css">
    table.tableizer-table {
        font-size: 12px;
        border: 1px solid #CCC; 
        font-family: Arial, Helvetica, sans-serif;
    } 
    .tableizer-table td {
        padding: 4px;
        margin: 3px;
        border: 1px solid #CCC;
    }
    .tableizer-table th {
        background-color: #104E8B; 
        color: #FFF;
        font-weight: bold;
    }
</style>
<table class="tableizer-table">
<thead><tr class="tableizer-firstrow"><th>SysInvNum</th><th>Customer</th><th>Charges</th></tr></thead><tbody>
 <tr><td>11</td><td>100</td><td>1.50</td></tr>
 <tr><td>12</td><td>100</td><td>2.50</td></tr>
 <tr><td>13</td><td>100</td><td>3.50</td></tr>
 <tr><td>14</td><td>100</td><td>-2.00</td></tr>
 <tr><td>15</td><td>100</td><td>-7.25</td></tr>
 <tr><td>16</td><td>100</td><td>-4.00</td></tr>
 <tr><td>17</td><td>200</td><td>30.00</td></tr>
 <tr><td>18</td><td>200</td><td>40.00</td></tr>
 <tr><td>19</td><td>200</td><td>-70.00</td></tr>
 <tr><td>20</td><td>200</td><td>35.00</td></tr>
 <tr><td>21</td><td>300</td><td>15.00</td></tr>
 <tr><td>22</td><td>300</td><td>25.00</td></tr>
 <tr><td>23</td><td>300</td><td>-30.00</td></tr>
 <tr><td>24</td><td>300</td><td>10.00</td></tr>
 <tr><td>25</td><td>300</td><td>-10.00</td></tr>
 <tr><td>26</td><td>300</td><td>18.00</td></tr>
 <tr><td>27</td><td>400</td><td>-50.00</td></tr>
 <tr><td>28</td><td>400</td><td>-100.00</td></tr>
 <tr><td>29</td><td>400</td><td>-50.00</td></tr>
 <tr><td>30</td><td>400</td><td>300.00</td></tr>
 <tr><td>31</td><td>400</td><td>175.00</td></tr>
</tbody></table>

初步问答: Remove Rows That Sum Zero For A Given Key

0 个答案:

没有答案