我在Oracle中为我需要的其他工作生成脚手架视图。一般来说,我只是在甲骨文和SQL中沾沾自喜。ORA-01427 - 子查询返回多个记录
我想这一点:
DATE_ I II III
13-DEC-16 CATEGORY SUBCATEGORY SITE_NAME_A
13-DEC-16 CATEGORY SUBCATEGORY SITE_NAME_B
13-DEC-16 CATEGORY SUBCATEGORY SITE_NAME_C
14-DEC-16 CATEGORY SUBCATEGORY SITE_NAME_A
14-DEC-16 CATEGORY SUBCATEGORY SITE_NAME_B
14-DEC-16 CATEGORY SUBCATEGORY SITE_NAME_C
...
从这:
SELECT TRUNC (SYSDATE - (3) + (LEVEL)) AS DATE_,
'CATEGORY' AS I,
'SUBCATEGORY' AS II,
(SELECT UNIQUE VENDOR_SITE_CODE FROM AP_INVOICES_V WHERE VENDOR_NAME = 'SOMETHING') AS III
FROM DUAL
CONNECT BY LEVEL <= (SYSDATE - (SYSDATE - (3)))
当然,这工作,如果子查询返回单个记录,但抛出了“太多记录”错误什么时候不能。我该如何解决这个问题?我希望获得额外的记录,因为它们是新的网站名称,但不知道如何将它们插入到视图中。
谢谢!
编辑:为了澄清,供应商可能有多个vendor_site,这就是当太多记录错误合并时。 还指出输出示例是错误的,纠正它。
使用Oracle的分析功能LISTAGG与分区添加新站点名称在此之前,被标记为重复tyake看看http://stackoverflow.com/questions/2108194/oracle-equivalent-to-sql-server-stuff-function? – B540Glenn
我觉得你需要加入,但我不明白你想要完成什么。例如,您想如何将网站名称与日期绑定?为什么site_name_a在13-dec-16而不是14-dec-16?有规定吗? – arturro
'我该如何解决这个问题?' - id取决于您想如何在报告中显示这些额外的记录。这个错误仅仅意味着,有超过1个网站使用'VENDOR_NAME ='SOMETHING''。你想展示他们吗?或者只挑一个随机站点? – krokodilko