0

最初に「 」についてお詫び申し上げます。これは Crystal Report の一部です。

別のテーブルを追加する必要がありますが、追加されたテーブルにさらに多くのデータ行がある場合、値を繰り返したくありません。

元のクエリ

select 
        "t1"."ID",
        "t4"."CURR",
        "t3"."TIME",
        "t4"."CASE",
        "t5"."CASE_TYPE"

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"

これが今の様子です
exp1

= tot6である別のテーブルを結合する必要があります。、フィールド new1、new2 を追加しますidt1id

ただし、t6.new1 と new2 にさらにデータがある場合は、Current,Time,Case,Cause_Type を null にする必要があります。

img2

赤と取り消し線の値を繰り返さずに t6 に参加するにはどうすればよいですか?

4

2 に答える 2

0
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
于 2012-09-28T05:31:03.873 に答える
0

Mogli はこれを試してください: t6 フィールドは、上記の内容に基づいて、1 つの id# に基づいて複数のレコードを保持するテーブルであると推測しています。

CR データベースにテーブルを追加し、新しいテーブルを追加します。リンクの下で、t6.id を t1.id に結合し、レポート自体で左外部結合 (t1 から t6 に移動) を使用して、t1.id を使用してグループを作成します。次に、t6 から使用するフィールドを持つ 2 番目のグループを追加します。

t6 で特定のレコードを探している場合は、テーブルに「現在の」ID を持つ行があるかどうかを確認し、テーブル間の結合を追加します (t1.id 間の結合の初期結合を削除できる場合があります)。 & t6.id)

于 2012-09-28T03:15:56.913 に答える