修正中の非常に大きな、正規化されていないテーブルが1つあります。その大きなテーブルから、データを正規化しています。SQLステートメントを使用しました
INSERT INTO smallTable(patientID, admissionDate, dischargeDate)
select distinct patientID, admissionDate, dischargeDate
FROM largeTable
したがって、私のsmallTableには正しい行数が入力されます。drgCode
smallTableに追加したい別の列があります。私はそれをするために次のクエリを試しました
INSERT INTO smallTable(drgCode)
select drgCode from
(
SELECT DISTINCT patientID, admissionDate, dischargeDate, drgCode from largeTable) as t
私が与えられたエラーは読み取りますcannot insert the value NULL into patientID, column does not alloq nulls, insert fails
。
drgCode
が正しく選択される唯一の方法は、select distinct
クエリのバリアントが使用されている場合です。検索を絞り込むために他のフィールドを含める必要がある場合、1つのフィールドのみを挿入するにはどうすればよいですか。
smallTableを空にすればこれができることはわかっていますが、それを回避する方法が必要だと思いました。