2

MD_ID列をDESCグループの最小値で更新しようとしています。
たとえば、DESC = Languageであるすべての行で、MD_ID = 21をmin(21、163、287)=21として取得する必要があります。簡単にするために、これは常にSOURCE=1に関連付けられたMD_IDです。

データは次のようになります。

MD_ID|SOURCE|DESC           |MSG |SEGMNT|FIELD
  21 |1     |Language       |A11 |PID   |33
 163 |2     |Language       |A11 |PID   |33
 287 |3     |Language       |A11 |PID   |33
  22 |1     |Sex            |B22 |MSH   |8
 145 |2     |Sex            |B22 |MSH   |8
 171 |3     |Sex            |B22 |MSH   |8
  23 |1     |Marital Status |C33 |NK1   |16
 145 |2     |Marital Status |C33 |NK1   |16
 289 |3     |Marital Status |C33 |NK1   |1
  24 |1     |Religion       |D44 |GT1   |7
 167 |2     |Religion       |D44 |GT1   |7
 292 |3     |Religion       |D44 |GT1   |7

私はそれがこのように見える必要があります:

MD_ID|SOURCE|DESC           |MSG |SEGMNT|FIELD
  21 |1     |Language       |A11 |PID   |33
  21 |2     |Language       |A11 |PID   |33
  21 |3     |Language       |A11 |PID   |33
  22 |1     |Sex            |B22 |MSH   |8
  22 |2     |Sex            |B22 |MSH   |8
  22 |3     |Sex            |B22 |MSH   |8
  23 |1     |Marital Status |C33 |NK1   |16
  23 |2     |Marital Status |C33 |NK1   |16
  23 |3     |Marital Status |C33 |NK1   |1
  24 |1     |Religion       |D44 |GT1   |7
  24 |2     |Religion       |D44 |GT1   |7
  24 |3     |Religion       |D44 |GT1   |7
4

1 に答える 1

4
UPDATE YourTable t
    SET MD_ID = (SELECT MD_ID
                     FROM YourTable t2
                     WHERE t2.DESC = t.DESC
                         AND t2.SOURCE = 1)
于 2012-10-19T20:38:31.507 に答える