我可以找到的不存在,在同一报表/标题查询中显示两个不同的查询吗?

时间:2018-04-19 00:18:41

标签: sql sybase

我很惊讶我找不到这个,除非它不存在。 我一直在使用SQL在我的PMS中编写查询大约五年 - 我想做点新事。

是否无法将两个(或更多)查询放入同一个输出语句中, 所有相同的输出?

想象一下,我是一家银行,我有一个包含客户信息的SQL表, 银行帐号#是主键---

我有一个包含所有交易数据的第二个表,主键是顺序的,其中一个列当然包括帐号。

是否真的没有办法让输出组合成一个产生相同检查语句的select语句。

它在顶部显示我从客户信息表中选择的记录的ONCE。然后继续执行订单项。一个简单的标题查询。 然后是长数据查询。然后去分页符?

即。 从客户表中选择customer.account,customer.firstname,customer.lastname,customer.everything

然后 -

选择transaction.number,transaction.date,transaction.type,transaction.debitamt,transaction.creditamt,transaction.whatever 其中transaction.account等于customer.account,日期在x& y之间 按transaction.number排序

customer.account

上的分页

我想在同一报告上显示两个不同查询的输出 然后我想为下一位客户提供一个新页面

真的?没有规定以这种方式一个接一个地生产两个不同的表格?他们必须匹配内容? (联合所有) 因为我在交易的每一行都不需要客户名称。

我一直在搜索几个小时,但却找不到此功能存在....

1 个答案:

答案 0 :(得分:0)

SQL可用于提供报告所需的数据,例如查询可能如下所示:

select
        c.account
      , c.firstname
      , c.lastname
      , c.all_other
      , t.number
      , t.date
      , t.type
      , t.debitamt
      , t.creditamt
      , t.whatever 
from customer_table c
inner join transaction_table t on c.account = t.account
where c.account = 'abcd'
and t.date >= '2018-04-01' and t.date < '2018-05-01'
order by
        c.account
      , t.date
;

但SQL 并非设计为报告编写者。它将为来自customer表的列中的每个客户的REPEATED信息提供该查询的结果。这不是偶然或错误,而是设计和预期的行为。

要“格式化”您的报告,您需要其他工具,例如您可以使用PHP和HTML将数据“格式化”为“报告”。这个额外的工具通常被称为“表示层”,而表示层可以使用SQL来获取所需的数据,它可以满足您的演示需求。