作为我的第一次尝试,代码很可能不复杂,优雅,高效或强大,但它现在似乎有用,我很享受学习曲线。
所以我可以检查正确的工作我已经创建了一个包含完整外部表连接,别名,列格式和中断的select语句,以生成一个报告,看起来像下面的链接。
BREAK on c1 on c2 on c3 on c4 on c5 on c6 on c7 on c8 on c9 on c10
COLUMN c1 HEADING ACCT FORMAT A6
COLUMN c2 HEADING COTY FORMAT A4
COLUMN c3 HEADING "COMPANY NAME" FORMAT A35
COLUMN c4 HEADING CITY FORMAT A15
COLUMN c5 HEADING POSTCODE FORMAT A10
COLUMN c6 HEADING FIRSTNAME FORMAT A10
COLUMN c7 HEADING SURNAME FORMAT A10
COLUMN c8 HEADING EMAIL FORMAT A39
COLUMN c9 HEADING TYPE FORMAT A8
COLUMN c10 HEADING NUMBER FORMAT A20
SELECT
cp.code c1, cp.type c2, cp.name c3, ad.city c4, ad.postcode c5, ct.firstname c6, ct.surname c7, em.emailaddress c8, pt.type c9, ph.phoneno c10
FROM company cp FULL OUTER JOIN companyaddress cpad ON cp.companyid=cpad.companyid
FULL OUTER JOIN address ad ON cpad.addressid=ad.addressid
FULL OUTER JOIN contact ct ON cp.companyid=ct.companyid
FULL OUTER JOIN email em ON ct.contactid=em.contactid
FULL OUTER JOIN phone ph ON ct.contactid=ph.contactid
FULL OUTER JOIN phonetype pt ON ph.phonetypeid=pt.phonetypeid
ORDER BY cp.code, cp.type, cp.name, ad.city, ad.postcode, ct.firstname, ct.surname, em.emailaddress, pt.type, ph.phoneno;
2个问题:
注意TYPE列。这显示了电话号码的类型。我无法理解的是为什么有时候列向左缩进并爬进EMAIL列的格式化空间。更重要的是,这似乎不一致。我确定这是一个格式化问题,我已经尝试从连接表中返回更多/更少的列,并以列格式分配列大小。这些变化有时会导致正确的列格式,但我找不到任何隔离问题的一致性。
如果联系人有两个电子邮件地址但只有一种电话类型,则会列出两次电话详细信息。请联系Dave Michaels for CompanyE Ltd。
我尝试将功能减少到几个表和几行代码。我希望这可以隔离问题或限制我可能需要发布的代码行,但没有快乐。我可以为表创建,数据插入提供架构图和脚本,并选择任何愿意帮助我的人。我将非常感激。
答案 0 :(得分:0)
Alex Poole回答
SET TAB OFF