1

私はここを見てきましたが、2 つのレコードを 1 つに結合することに関する多くの質問がありますが、私のものは独特の問題だと思います。SQL クエリを使用して、発券ソフトウェア用のデスクトップ ガジェットを作成するソフトウェアがあります。各技術者が持っているヘルプ デスク チケットの数を追跡したいと考えており、そのための作業コードがあります。うまく機能する棒グラフを生成しますが、複数の技術者または技術者とマネージャーがチケ​​ットに割り当てられている場合があり、そのデータを抽出できません。コードは次のとおりです。

SELECT TECHNICIAN, COUNT(TECHNICIAN) AS TICKETS
FROM TABLE

(内部結合には少し余分な複雑さがあるため、従業員の ID を実際の名前のテーブルにリンクすることで、棒グラフで従業員の名前を取得できますが、これは簡略化されたバージョンです)

これが私の現在の結果セットです:

TECHNICIAN    TICKETS
Bob           5
Bob, Harry    1
Joe           6
Mark          3
Jeff          2

そして、私が望む結果セットは次のとおりです。

TECHNICIAN    TICKETS
Bob           6
Joe           6
Mark          3
Jeff          2

上記の結果セットがガジェットに入ると、すべてのレコードのバーが作成されます。つまり、「ボブ」バーと「ボブ、ハリー」バーがあります。また、技術者だけが必要であることはわかっているので、別の「ハリー」レコードを作成する必要はありません。両方の「ボブ」を追加するだけです。また、データベースへのアクセスは読み取り専用であるため、データを保持するための新しいテーブルを作成することはできません。

ありがとうございました!

4

1 に答える 1

1

TECHNICIAN列が 255 文字であると仮定します。

SELECT Tech, Tickets = COUNT(*)
FROM (
  SELECT 
    Tech = SUBSTRING
           (
              TECHNICIAN, 1, 
              COALESCE(NULLIF(CHARINDEX(',', TECHNICIAN)-1, -1), 255)
           )
  FROM dbo.[TABLE]
) AS x
GROUP BY Tech;
于 2012-07-19T16:16:20.623 に答える