1

これは何度も尋ねられましたが、私は自分に合った解決策を見つけていません。私は以下のような見方をしています。すべての列を返すクエリを実行する必要がありますが、一意のGLASS_IDに対して1回だけ実行します。where句も必要ですWHEREGLASS_IDLIKE'%' + @PartialGlassId +'%'

VEH_ID GLASS_ID OPENING_SEQ PART_NUM PREFIX_CD ANT_FLAG BLK_SIZE1
26975 DB00201 1 201 DB Y 14.00
26864 DB00375 1375 DB N 16.00
26865 DB00375 1375 DB N 16.00
26866 DB00375 1375 DB N 16.00
38929 DB00408 1408 DB N 12.00
38930 DB00408 1408 DB N 12.00
38931 DB00408 1408 DB N 12.00
38932 DB00408 1408 DB N 12.00
38933 DB00408 1408 DB N 12.00
38990 DB00408 1408 DB N 12.00
38991 DW01015 1 1015 DB N 12.00

結果は次のようになります

VEH_ID NAGS_GLASS_ID OPENING_SEQ PART_NUM PREFIX_CD ANT_FLAG BLK_SIZE1
26975 DB00201 1 201 DB Y 14.00
26864 DB00375 1375 DB N 16.00
38929 DB00408 1408 DB N 12.00
WHERE GLASS_ID LIKE'%DB00%'の場合

4

2 に答える 2

1
SELECT b.* 
FROM yourTable b
INNER JOIN
  (SELECT MIN(VEH_ID) as minV,  GLASS_ID as g
   FROM yourTable
   GROUP BY GLASS_ID) as d
  ON b.Glass_ID = d.g and b.VEH_ID = d.minV
WHERE b.GLASS_ID LIKE  '%DB00%'

注:この場合、WHERE句は、INNERJOINからのサブクエリにも含まれている可能性があります。

于 2013-02-04T23:05:34.547 に答える
0
Select distinct max(veh_ID), glass_ID, Opening_SEQ, part_Num, PRefix_CD, Ant_Flag, BLK_Size1
FROM yourTable
WHERE GLASS_ID LIKE '%' + @PartialGlassId + '%'
Group by glass_ID, Opening_SEQ, part_Num, PRefix_CD, Ant_Flag, BLK_Size1

他のオプション

Select distinct group_Concat(veh_ID, ', '), glass_ID, Opening_SEQ, part_Num, PRefix_CD, Ant_Flag, BLK_Size1
FROM yourTable
WHERE GLASS_ID LIKE '%' + @PartialGlassId + '%'
Group by glass_ID, Opening_SEQ, part_Num, PRefix_CD, Ant_Flag, BLK_Size1
于 2013-02-04T23:08:18.087 に答える