人をモデル化するデータベースのクエリを書き込もうとしています。これらの人々は組織内のポジションを保持しているため、ポジションテーブルに複数のエントリがあります。私はまた、電子メール、アドレス、および電話の情報を保持するテーブルから参加しました。MS SQL Server複数の行を1つに結合するクエリ
私はこのような元のクエリを持っています。
SELECT
P.ID
, N.FIRST
, N.MIDDLE
, N.LAST
, A.AD1
, A.AD2
, A.AD3
, A.CITY
, A.STATE
, A.ZIP
, A.COUNTRY
, PH.NUMBER
, PH.TYPE
, E.TYPE
, E.ADDRESS
FROM
PERSON AS P
JOIN NAME AS N ON P.ID=N.ID,
JOIN ADDRESS AS A ON P.ID=A.ID,
JOIN PHONE AS PH ON P.ID=PH.ID,
JOIN EMAIL AS E ON P.ID=E.ID
Iの代わりPOSITION
からPOSITION
テーブルの行ごとに別々の行に出てくる元のクエリを引き起こす参加、私はたい各列に対しての、このクエリにPOSITION
テーブルに参加したいですクエリの行に追加します。
位置テーブルのクエリは、最初のクエリから返された各行の単なるものです。select * from Position as Pos where Pos.ID={P.id}
ここで、P.IDは最初のクエリのものです。
正常な結果は次のようにする必要があります:あなたはオーダーのアイテムを注文レコードに参加すると思うだろうかの
が、私はちょうど位置テーブルは、このようなものです参加したときに、私は何を得る:
これは可能ですか?日を探していた。
サンプルデータ、あなたが試したものなどを投稿してください。このリンクはあなたに役立ちます:https://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-フォーラム/ – Eli
'私は、'あなたは列を意味する行ごとに別の行で出てくるクエリを理解していないのですか?いくつかのデータサンプルと期待される結果を追加してください – Horaciux
はい、可能です。それは、[カンマで区切られたリスト]のような値を持つPositionの単一の列を必要とするかどうかによって異なります(https://stackoverflow.com/questions/17591490/how-to-make-a-query-with-group- concat-in-sql-server)、またはPosition1、Position2などのように[各位置の新しい列](https://stackoverflow.com/q/14797691/6167855) Horaciuxは、サンプルデータと期待される出力を述べました。いずれにせよ、あなたの質問は、私のコメントにリンクされている2つのうちの1つの複製です – scsimon