-1

フィルタリングする必要があるデータを含むクエリ結果セットがありますが、フィルタリング データは別のテーブルに含まれており、さらにそのフィルタリング テーブルは、フィルタのグループを含む別のテーブルにリンクされています。さらに、グループ化テーブルには null の可能性があるフィールドが含まれているため、これらのフィールドを無視する必要があります。結果をグループ テーブルでグループ化する必要もあります。この問題への最善のアプローチについて何か考えはありますか?

データ テーブルの開始

MYID  NAME    ADDRESS        AGE
1     FRED    123 SECOND ST  12
2     JILL    321 FIRST ST   6
3     JOE     54 THIRD ST    4

フィルタリングテーブル

--Group: table that is keyed via xref to Set table
GROUP_ID AGEFROM    AGETO    MYID
1        3          7        NULL
2        NULL       NULL     2


--Set: table that is xrefed to group table
SET_ID   NAME
5        SET1
6        SET2

--Xref: table connecting Set and Group
SET_ID    GROUP_ID
5         1
5         2
6         1

フィルタリングテーブルをフィルタリング基準として使用して、開始データテーブルをクエリすることによる目的の出力

SET     GROUP     NAME    AGE    ID     ADDRESS
5       1         JILL    6      NULL   321 FIRST ST
5       1         JOE     4      NULL   54 THIRD ST
5       2         JILL    NULL   2      321 FIRST ST
6       1         JILL    6      NULL   321 FIRST ST
6       1         JOE     4      NULL   54 THIRD ST

私の必要性をもう一度述べると、グループ テーブルのコンテンツによってフィルター処理された最初のテーブルの結果を出力し、グループ テーブル内の null の可能性とデータの範囲を考慮して、セット テーブルによってグループ化する必要があります。わかる?

この結果を達成するための最良のアプローチは何ですか?


ご入力いただきありがとうございます。リクエストが不完全であると見なされ、否定的なマークが付いている理由について少し混乱しています... フィルタリングするデータを含むテーブルの例を提供し、次にフィルタリング データを含む他の 3 つのテーブルを提供しました。私は後で期待される出力を提供しました。データベースをフィルタリング/検索し、フィルタリングデータベースを基準として使用してデータをフィルタリングして目的の出力を得ることができるようにする方向について、いくつかの支援を得ようとしています。ここには、私を助けてくれる素晴らしい SQL 関係者がいると思いました。回答に少し戸惑いました

4

1 に答える 1

0

次のようないくつかの結合を使用する必要があります。

SELECT SetTbl.SetID, GroupTbl.GROUP_ID, ResultsTbl.Name, ResultsTbl.Age, ResultsTbl.Address, GroupTbl.MYID
FROM ResultsTbl INNER JOIN GroupTbl
        ON (ResultsTbl.MYID = GroupTbl.MYID OR ResultsTbl.AGE BETWEEN GroupTbl.AGEFROM AND GroupTbl.AGETO)
     INNER JOIN SetTbl
        ON GroupTbl.GROUP_ID = SetTbl.GROUP_ID

あなたの質問は明確ではないので、これが答えであるとは言えません。stackoverflow の使用に関する次のアドバイスを参考にしてください。

  • 「よろしくお願いします!」行、それは素晴らしいですが、ここには属しません.
  • 問題を解決してから、stackoverflow にアクセスして、何を試し、どのよう問題が発生したかを説明する必要があります。

一般的には、FAQ を確認し、そのガイドラインに真剣に従う必要があります。そうすれば、stackoverflow はあなたや他の人にとって最も役立つでしょう。https://stackoverflow.com/faq

于 2012-07-03T22:36:08.937 に答える