Sql 如何在不重复的情况下将第六个表与字段联接?
首先,为所有的一切道歉,这是水晶报告的一部分 我有这个查询,它是由其他人编写的,我需要添加另一个表,但如果添加的表有更多的数据行,我不希望值重复 原始查询 这是它现在的样子 我需要将另一个表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使用的字段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和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