2016-12-15 20 views
0

私は3つのテーブルがあるとします(下記参照)。グループ連結された文字列に変換せずに同じ文字列

series_noテーブル:

| id | desc_brand  | 
|:------|----------------:| 
| 1020 |  Audi  | 
| 1021 |  Bentley  | 
| 1022 |  Ford  | 
| 1023 |  BMW   | 
| 1024 |  Mazda  | 
| 1025 |  Toyota  | 

car_infoテーブル:

| seriesno_id | brand_id | color | 
|:---------------|------------|--------:| 
|  7040  | 1020 | white | 
|  7040  | 1020 | black | 
|  7040  | 1020 | pink | 
|  7041  | 1021 | yellow | 
|  7041  | 1021 | brown | 
|  7042  | 1022 | purple | 
|  7042  | 1022 | black | 
|  7042  | 1022 | green | 
|  7043  | 1023 | blue | 
|  7044  | 1024 | red  | 
|  7045  | 1025 | maroon | 
|  7045  | 1025 | white |  

どのようにCテーブル

| id | desc_seriesno | 
|:------|----------------:| 
| 7040 |  AU1011  | 
| 7041 |  AU1022  | 
| 7042 |  AU1033  | 
| 7043 |  AU1044  | 
| 7044 |  AU1055  | 
| 7045 |  AU1066  | 

ブランドiグループを連結文字列で変更することなく類似または同一の文字列で結合するか、同じ文字列を上書きします。

これは、SQL Server 2014との私の現在のクエリです: -

SELECT SN.id AS seriesid, B.id AS brandid, B.desc_brand 
FROM [db1].[dbo].[series_no] SN 
    LEFT JOIN [db1].[dbo].[car_info] CI 
    ON CI.seriesno_id = SN.id 
    RIGHT JOIN [db1].[dbo].[brand] B 
    ON B.id = CI.brand_id 
GROUP BY SN.id, B.id, B.desc_brand 
ORDER BY SN.id ASC 

が、残念ながらそれは私がこのような文字列でグループ化することはできませんので、私にエラーを与えました。

代わりに、この(連結列)の
| seriesid | brandid | desc_brand | 
|:-----------|------------|--------------:| 
| 7040 | 1020 |  Audi  | 
| 7041 | 1021 |  Bentley | 
| 7042 | 1022 |  Ford  | 
| 7043 | 1023 |  BMW  | 
| 7044 | 1024 |  Mazda  | 
| 7045 | 1025 |  Toyota | 

: - - :

| seriesid | brandid |  desc_brand  | 
|:-----------|------------|----------------------:| 
| 7040 | 1020 |  Audi, Audi, Audi | 
| 7041 | 1021 |  Bentley, Bentley | 
| 7042 | 1022 |  Ford, Ford, Ford | 
| 7043 | 1023 |  BMW    | 
| 7044 | 1024 |  Mazda    | 
| 7045 | 1025 |  Toyota, Toyota | 
+0

連結されている必要がありますか? – Wanderer

+0

いいえ、desc_brandは基本的に同じ文字列を保持しているので、連結された文字列として扱わないことをお勧めします。それは可能ですか? (連結された文字列に変換せずに) – user3657273

答えて

関連する問題