首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

关于mySql查询的有关问题 高分

2012-02-22 
求助关于mySql查询的问题 高分一.数据表的结构:1.主表invoice:字段:InvoiceCodeInvoiceDatePartnerCodePro

求助关于mySql查询的问题 高分
一.数据表的结构:

1.主表invoice:

字段:InvoiceCode       InvoiceDate       PartnerCode       ProgramCode         ……

            IN2007031001       2007-03-04               ICBC                 AA                       ……

            IN2007031002       2007-03-05               ICBC                 BB                       ……

            IN2007031003       2007-03-10               ICBC                 AA                       ……

                    ……                     ……                     ……               ……                     ……

2.从表一invoicelist:

字段:InvoiceCode       ……     ItemBundleCode       QtyTxn       Price       Amount  

            IN2007031001     ……       IB2007020111           10             25.00       250.00

            IN2007031001     ……       IB2007020112           10             15.00       150.00

            IN2007031001     ……       IB2007020113           5               20.00       100.00

……                 ……             ……       ……             ……         ……

            IN2007031002     ……       IB2007020111           8                 5.00       40.00

            IN2007031002     ……       IB2007020112           7                 6.00       42.00

            IN2007031002     ……       IB2007020113           14               10.00     140.00

……                 ……             ……       ……             ……         ……

3.从表二invoiceuser:

字段:InvoiceCode       ……     Descrption               QTY           UnitPrice   Amount  



            IN2007031001     ……       单价-5                 10                 -5.00       -50.00

            IN2007031001     ……       单价-2                     10                   2.00         20.00

            IN2007031001     ……       场地费500/月           6                 500.00       3000.00

……                 ……             ……       ……             ……         ……

            IN2007031003     ……       场地费100/月           5                 100.00       500.00

            IN2007031003     ……       场地费200/月           7                 200.00       1400.00

            IN2007031003     ……       其它                         14               -10.00         -140.00

……                 ……             ……       ……             ……         ……

二.查询需求:

1.显示的结果要求

编号     票据单号                 日期                           客户               总金额         ……

  1         IN2007031001       2007-03-04               ICBC                 3020.00       ……

  2         IN2007031002       2007-03-05               ICBC                 222.00         ……

  3         IN2007031003       2007-03-10               ICBC                 1760.00       ……

……       ……                       ……                         ……                     ……         ……

2.要求点击表头排序(主要是总金额);

3.a.总金额=从表一的合计金额   +   从表二的合计金额;
    b.一个单据可能只在其中一个从表有数据、也可能在两个从表中有数据。


[解决办法]
你能把SQL的逻辑需求描述得清楚一些嘛?
[解决办法]
SELECT i.InvoiceCode,


IF((sum(l.Amount) IS NULL),0,sum(l.Amount)) + IF((sum(u.Amount) IS NULL),0,sum(u.Amount))
FROM invoice as i
LEFT JOIN invoicelist as l
ON i.InvoiceCode = l.InvoiceCode
LEFT JOIN invoiceuser as u
ON i.InvoiceCode = u.InvoiceCode
GROUP BY i.InvoiceCode;
[解决办法]
如果是MySQL5.0以下就不支持这种方法!

热点排行