【问题标题】:mysql query for a situation?mysql查询一个情况?
【发布时间】:2015-05-23 11:43:47
【问题描述】:

我有两张桌子,


OrderTable(orderid,ordersum)


和 OrderPayments(orderid,paidamount)。


订单表


orderid 订单和


ORD123456 40,000.00


ORD789987 30,000.00


订单付款


orderid 支付金额


ORD123456 10,000.00


ORD123456 20,000.00


ORD123456 10,000.00


ORD789987 28,000.00




对于订单,可以分期付款。


我必须得到输出


orderid ordersumpaidamount


ORD123456 40,000.00 40,000.00


ORD789987 30,000.00 28,000.00


我已经使用视图了。

创建视图 op1 为 按orderid从orderpayments组中选择orderid,sum(paidamount)作为“pamount”;

然后我使用内部连接查询 b/w ordertable 和视图 (op1)。

我希望它在单个查询中完成,而不是使用视图/任何其他表。这可能吗?建议我?

【问题讨论】:

    标签: join pymssql


    【解决方案1】:

    使用内部查询。 这是连接语句的示例

    select * from OrderTable
    inner join (
        select 
            orderid, sum(paidamount) as "pamount" 
        from orderpayments 
        group by orderid
    ) as tmp using (orderid)
    

    【讨论】:

    • 感谢您的解决方案。它有效。但是我不懂查询控制流程,你能详细解释一下吗?
    • 你到底有什么不明白的?查询的工作方式与使用视图完全相同,但使用嵌套查询进行查看
    • 您的查询很好,我得到了输出。我的问题是你没有在条件下使用,它仍然有效。查询是如何一步一步执行的。如果我得到要求,我应该像你一样写。
    • 由内而外写得很好。首先提出内部请求(就像您创建视图一样)。然后将这些查询用作表,就像使用和查看一样。在MySQL 中,语法略显局促。所以,也许,你更容易理解 with 声明 sqlfiddle.com/#!15/7f924/12
    • 感谢您的解释。我明白了.. 首先我在 MSSQL CTE 中尝试过,但提交了......后来,通过你的例子我明白了.. 谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多