0

これを正しく書く方法を見つけようとして夢中になった後、私はここであられのメアリーを投げているようなものです。私は近くと遠くを検索しましたが、この「クリック」を私にもたらしたものはまだ見つかりません.

状況は次のとおりです。3つのテーブルがあります(括弧に含まれる列):

  • prods (prod_id PK、prod_grp_id)
  • prod_grps (prod_grp_id PK、prod_grp_mgr_nm)
  • prod_grp_prods (prod_id、prod_grp_id)

製品は、複数の prod_grp に属することができます。たとえば、野球は prod_grp_mgr_nm = "AssMGR_Bill" のスポーツ prod_grp に含まれる場合がありますが、prod_grp_mgr_nm = "LeadMGR_Jake" の general_merch グループにも含まれます。prods テーブル内のすべてのアイテムを確認し、各アイテムの「prod_grp_id」値を更新して、prod_grp_mgr_nm に「LeadMGR」を持つ人が管理する prod_group_id が含まれるようにする必要があります。「LeadMGR」を含む prod_grp_mgr_nm を持つ prod_grp が 1 つしかない場合にのみ、prod を更新したいと考えています。ここでの目標は、リード マネージャーが 1 つ (そして 1 つだけ) 存在する場合に、リード マネージャーが管理するグループに各製品を関連付けることです。

これまでのところ、次の SELECT ステートメントがあります。

    SELECT prods.prod_id
    FROM prods p
    INNER JOIN prod_grp_prods pgp
    ON prod.prod_id = pgp.prod_id
    INNER JOIN prod_grps pg
    ON pgp.prod_grp_id = pg.acct_grp_id
    WHERE pg.prod_grp_mgr_nm LIKE '%LeadMGR%'
    GROUP BY p.prod_id HAVING COUNT(p.prod_id) = 1
    ORDER BY p.prod_id`

これにより、更新が必要なすべての prod_id が返されます。

4

3 に答える 3