Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何与条件自联接并添加上一列?_Sql_Postgresql - Fatal编程技术网

Sql 如何与条件自联接并添加上一列?

Sql 如何与条件自联接并添加上一列?,sql,postgresql,Sql,Postgresql,我有这个疑问 SELECT "os_bulan_lalu", "os_update" FROM ( SELECT (SELECT "OUTSTANDING" FROM tbl_nominatif_hasil WHERE "BUSS_DATE"='2018-11-30' AND "COLLDET"='1') as os_bulan_lalu, (SELECT "OUTSTANDING" FROM tbl_nominatif

我有这个疑问

SELECT
   "os_bulan_lalu",
   "os_update"
FROM (
        SELECT
   (SELECT "OUTSTANDING" FROM tbl_nominatif_hasil 
        WHERE "BUSS_DATE"='2018-11-30' AND "COLLDET"='1') 
        as os_bulan_lalu,
   (SELECT "OUTSTANDING" FROM tbl_nominatif_hasil 
        WHERE "BUSS_DATE"='2018-12-17' AND "COLLDET"='2A')
        as os_update
   ) AS temp
但是这个查询在我运行时是错误的,我希望得到如下结果

os_bulan_lalu | os_update

      232323 | 21424
      343242 | 432
       23432 | 23432
      234324 | 234324
      234324 | 23423423
我的意思是os_bulan_lalu是BUSS_DATE='2018-11-30'和COLLDET='1',os_update是BUSS_DATE='2018-12-17'和COLLDET='2A'

错误是

[Err]错误:用作表达式的子查询返回多行

我想得到这样的结果

os_bulan_lalu | os_update

      232323 | 21424
      343242 | 432
       23432 | 23432
      234324 | 234324
      234324 | 23423423

也许像这样的事情可以奏效

SELECT A.OUTSTANDINGAS os_bulan_lalu, B.OUTSTANDINGAS os_update 
FROM (SELECT OUTSTANDING, ROW_NUMBER() OVER ( ORDER BY OUTSTANDING) AS row_num 
      FROM tbl_nominatif_hasil 
      WHERE BUSS_DATE = '2018-11-30' AND COLLDET = '1') AS A
JOIN (SELECT OUTSTANDING, ROW_NUMBER() OVER ( ORDER BY OUTSTANDING) as row_num 
      FROM tbl_nominatif_hasil 
      WHERE BUSS_DATE = '2018-12-17' AND COLLDET = '2A') AS B ON A.row_num = B.row_num
它假设两个查询中的行数相等,但在不了解任何输入的情况下,很难给出更好的答案


更新如果子查询返回不同数量的行,最好进行完整的外部联接,而不是联接

如果您可以将输入数据添加为格式化文本,这将非常有用。@Tony94数据的编号类似于32422141,表中有列buss_date,colldet表示条件,,,我的意思是其中buss_date='date'和colldet='1',,,在我的问题中,这是可能的??querry是错误吗?需要解释吗?从tbl_Nammitf_hasil中选择未完成项,其中BUSS_DATE='2018-11-30'和COLLDET='1'作为os_bulan_lalu,从tbl_Nammitf_hasil中选择未完成项,其中BUSS_DATE='2018-12-17'和COLLDET='2A'作为os_update作为临时[错误]错误:用作子查询的子查询返回多行expression@willy请使用示例输入和预期输出编辑您的问题。