男性プログラマが調査した言語は何ですか? follwingテーブルから2つの列から異なる値を得て、それを1つの列にする方法
ID PNAME GENDER PROF1 PROF2
1 ANAND M PASCAL BASIC
2 ALTAF M CLIPPER COBOL
3 JULIANA F COBOL DBASE
4 KAMALA F C DBASE
5 MARY F CPP ORACLE
6 NELSON M COBOL DBASE
7 PATTRICK M PASCAL CLIPPER
8 QADIR M ASSEMBL C
9 RAMESH M PASCAL DBASE
10 REBECCA F BASIC COBOL
11 REMITHA F C ASSEMB
12 REVATHI F PASCAL BASIC
13 VIJAYA F FOXFRP C
男性のみプログラマを出すために、単純なクエリを使用したとき、私は
SELECT [ID], [PNAME],[GENDER],[PROF1],[PROF2] FROM [PRAC].[dbo].[PROGRAMMER] where gender = 'M'
ID PNAME GENDER PROF1 PROF2
1 ANAND M PASCAL BASIC
2 ALTAF M CLIPPER COBOL
6 NELSON M COBOL DBASE
7 PATTRICK M PASCAL CLIPPER
8 QADIR M ASSEMBL C
9 RAMESH M PASCAL DBASE
も、私たちは労働組合のコマンドなど
の両方colunmsから異なる値を得ることができることを使用することができますSELECT DISTINCT PROF1 FROM PROGRAMMER WHERE gender = 'M'
union
SELECT DISTINCT PROF2 FROM PROGRAMMER WHERE gender = 'M'
PROF
---------
ASSEMBL
BASIC
C
CLIPPER
COBOL
DBASE
PASCAL
しかし、私はできないようなものが欲しいです。
ID PNAME GENDER proficiency
1 ANAND M PASCAL
1 ANAND M BASIC
2 ALTAF M CLIPPER
2 ALTAF M COBOL
6 NELSON M COBOL
6 NELSON M DBASE
7 PATTRICK M PASCAL
7 PATTRICK M CLIPPER
8 QADIR M ASSEMBL
8 QADIR M C
9 RAMESH M PASCAL
9 RAMESH M DBASE
助け、事前のおかげで
ID、PNAME、GENDERをクエリに追加するだけですか? –
@JamesZが述べているように、これらの列をユニオンステートメントに追加してください – scsimon
あなたの本当の問題は、テーブルが3NFでないことです:学生 - コース関係を保存する子テーブルを用意する必要があります – Bohemian