Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.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_Oracle_Crystal Reports_Oracle10g - Fatal编程技术网

Sql 如何在不重复的情况下将第六个表与字段联接?

Sql 如何在不重复的情况下将第六个表与字段联接?,sql,oracle,crystal-reports,oracle10g,Sql,Oracle,Crystal Reports,Oracle10g,首先,为所有的一切道歉,这是水晶报告的一部分 我有这个查询,它是由其他人编写的,我需要添加另一个表,但如果添加的表有更多的数据行,我不希望值重复 原始查询 这是它现在的样子 我需要将另一个表t6的id=连接到t1.id,并添加字段new1,new2 但如果t6.new1和new2有更多数据,我希望Current、Time、Case、Cause_Type为null。 实例 我如何加入t6而不重复红色和删除线值?Mogli请尝试以下方法: 我猜t6字段是一个表,根据上面显示的1个id保存多条记录

首先,为所有的一切道歉,这是水晶报告的一部分

我有这个查询,它是由其他人编写的,我需要添加另一个表,但如果添加的表有更多的数据行,我不希望值重复

原始查询

这是它现在的样子

我需要将另一个表t6的id=连接到t1.id,并添加字段new1,new2

但如果t6.new1和new2有更多数据,我希望Current、Time、Case、Cause_Type为null。 实例

我如何加入t6而不重复红色和删除线值?

Mogli请尝试以下方法: 我猜t6字段是一个表,根据上面显示的1个id保存多条记录

在CR数据库中,添加表,然后添加到新表中,在链接下,将t6.id连接到t1.id,左侧外部连接从t1连接到t6 在报告本身上,使用t1.id创建一个组,然后添加第二个组,其中包含要从t6使用的字段


如果要在t6上查找特定记录,请查看表中是否有具有当前Id的行,并为表之间的行添加联接。您可以删除t1.Id和t6.Id之间的联接初始联接。

SQL不能以这种方式工作。您在应用程序中进行表示。因为其中一个字段中有不同的数据,所以这是一个新行。是否有方法写入到select语句并使用union all或其他方法,我对SQL一无所知。您必须使用左或右外部联接才能执行您想要的操作。此外,我建议重新构造查询并以更优雅的方式编写它。不,没有一种方法可以做到这一点。这是SQL 101的东西,您必须返回整个记录。如果不希望每个字段都反显示,可以在应用程序中进行反显示。您曾经使用sql代码进行过表示。
SELECT "ID"
,"CURR"
,"TIME"
,"CASE"
,"CASE_TYPE"
,New1
,New2
FROM (
    SELECT "t1"."ID"
    ,"t4"."CURR"
    ,"t3"."TIME"
    ,"t4"."CASE"
    ,"t5"."CASE_TYPE"
    ,SUM("New1") OVER (
        PARTTION BY "t1"."ID" ORDER BY "t1"."ID"
        ) AS New1
    ,SUM("New2") OVER (
        PARTTION BY "t1"."ID" ORDER BY "t1"."ID"
        ) AS New2
    ,ROW_NUMBER() OVER (
        PARTTION BY "t1"."ID" ORDER BY "t1"."ID"
        ) AS RowNum
    FROM "db"."t1" "t1"
    FULL OUTER JOIN "db"."t2" "t2"
        ON "t1"."id" = "t2"."id"
    FULL OUTER JOIN "db"."t3" "t3"
        ON "t1"."id" = "t3"."id"
    FULL OUTER JOIN "db"."t4" "t4"
        ON "t1"."curr_name" = "t4"."curr_id"
    FULL OUTER JOIN "db"."t5" "t5"
        ON "t2"."cat" = "t5"."cat"
    FULL OUTER JOIN "db"."t6" "t6"
        ON "t6"."id" = "t1"."id"
    ) Tb1
WHERE RowNum = 1
SELECT "ID"
,"CURR"
,"TIME"
,"CASE"
,"CASE_TYPE"
,New1
,New2
FROM (
    SELECT "t1"."ID"
    ,"t4"."CURR"
    ,"t3"."TIME"
    ,"t4"."CASE"
    ,"t5"."CASE_TYPE"
    ,SUM("New1") OVER (
        PARTTION BY "t1"."ID" ORDER BY "t1"."ID"
        ) AS New1
    ,SUM("New2") OVER (
        PARTTION BY "t1"."ID" ORDER BY "t1"."ID"
        ) AS New2
    ,ROW_NUMBER() OVER (
        PARTTION BY "t1"."ID" ORDER BY "t1"."ID"
        ) AS RowNum
    FROM "db"."t1" "t1"
    FULL OUTER JOIN "db"."t2" "t2"
        ON "t1"."id" = "t2"."id"
    FULL OUTER JOIN "db"."t3" "t3"
        ON "t1"."id" = "t3"."id"
    FULL OUTER JOIN "db"."t4" "t4"
        ON "t1"."curr_name" = "t4"."curr_id"
    FULL OUTER JOIN "db"."t5" "t5"
        ON "t2"."cat" = "t5"."cat"
    FULL OUTER JOIN "db"."t6" "t6"
        ON "t6"."id" = "t1"."id"
    ) Tb1
WHERE RowNum = 1