我很惊讶我找不到这个,除非它不存在。 我一直在使用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
上的分页我想在同一报告上显示两个不同查询的输出 然后我想为下一位客户提供一个新页面
真的?没有规定以这种方式一个接一个地生产两个不同的表格?他们必须匹配内容? (联合所有) 因为我在交易的每一行都不需要客户名称。
我一直在搜索几个小时,但却找不到此功能存在....
答案 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来获取所需的数据,它可以满足您的演示需求。