【问题标题】:SQL query for Report Design in FastReport4 for Delphi用于 Delphi 的 FastReport4 中报表设计的 SQL 查询
【发布时间】:2013-01-22 13:00:17
【问题描述】:

我用 Delphi7 开发了一个 Account 程序,用 Fastreport4 设计报告 我有一个账单表,它有 6 列(BillID、BillDate、BillDesc、BillPrice、DebitID、CreditID),其中 DebitID 和 CreditID 是整数值,并且与具有两列(AccID、AccName)的 Account 表相关。 我想在 Delphi7 中使用 FastReport 创建一个报告,其中包含以下列的结果:

报告名称:Mr.x 的余额

BillID , BillDate , BillDesc , DebitPrice , CreditPrice , 剩余 -------------------------------------------------- --------------- 1 , 2012/01/22, 样本 Desc1, 100USD , 0 , -100USD 1 , 2012/01/22, 样本 Desc2, 0 , 100USD , 0USD

我认为,如果我可以创建具有上述结果的 SQL 查询,则创建报告很容易。 如果你有任何想法,请告诉我?

【问题讨论】:

    标签: sql-server delphi reporting delphi-7 fastreport


    【解决方案1】:
    select BillID , BillDate ,BillPrice,  BillDesc, b.accid, c.accid
    from a Bill 
    left outer join account b on a.DebitID = b.AccID
    left outer join account c on a.CreditID = c.AccID
    

    然后,您必须评估您的 masterdata/detaildata 带的“打印前事件”。

    if (b.accid <> '') then
      DebitPrice := BillPrice
    else
      CreditPrice := BillPrice
    

    注意:DebitPrice、CreditPrice 是全局变量

    【讨论】:

      【解决方案2】:

      尝试子查询

      select a.BillID, a.BillDate, a.BillDesc,
      (select b.BillPrice from Bill b inner join Account c on b.DebitID=c.AccID
      where b.BillID=a.BillID) as DebitPrice,
      (select d.BillPrice from Bill d inner join Account e on d.CreditID=e.AccID
      where d.BillID=a.BillID) as CreditPrice
      from Bill a
      

      我没有测试它,但我认为它会起作用,请告诉我

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多