質問: T_サイズ.番号 WHERE (T_商品色.画像1 IS NOT NULL) AND (T_メーカー.ブランド名 IS NOT NULL) GROUP BY T_商品.コード, T_商品.上代, T_商品色.画像1, T_品目.名称, T_品目.分類, T_商品.SALE, T_商品.割引率, T_メーカー.ブランド名, V_商品在庫.在庫数, T_商品色.色, T_商品色サイズ.サイズ, T_サイズ.名称 ORDER BY 入荷日 DESC, T_商品.コード, T_商品色.色, T_商品色サイズ.サイズ, T_商品.上代, T_商品色.画像1, 品目名, T_品目.分類, T_商品.SALE, T_商品.割引率, ブランド;"; ```
回答: group by は使用せずにサブクエリーでtop1指定で取り出す。 取り出す順序はサブクエリー内のorder byで指定。 以下例。 ``` SELECT コード, 上代 ,(select top1 画像1 from T_商品色 where 商品=T_商品.コード order by 色, 画像1) as 画像1 from T_商品 where コード in ( select 商品 FROM T_商品色 where 画像1 IS NOT NULL and メーカー in ( select 番号 from T_メーカー where ブランド名 IS NOT NULL ) ORDER BY 入荷日 DESC, コード, 上代, SALE, 割引率 ``` どうしてもgroup byって話なら、STRING_AGGと**CROSS APPLY**の組み合わせ でゴニョゴニョすることでなんとかなるかもしれないけど、更に複雑になりそう。