0
GROUP BY
節で生成された複数の値を選択する際に問題があります。私は私が持っているものの単純化した例セットアップしよう :このことからグループ内のすべての値を含むサブクエリー
Table CUSTOMERS Table PRODUCTS Table ORDERS
ID | NAME ID | DESCR | PROMO ID_P | ID_C
---+--------- ---+-------+------- -----+-----
1 | Alice 1 | prod1 | gold 1 | 1
2 | Bob 2 | prod2 | gold 2 | 3
3 | Charlie 3 | prod3 | silver 1 | 2
4 | prod4 | silver 3 | 1
を私は、単一のセル
Results
PROMO | products | CUSTOMERS
-------+--------------+--------------------
gold | prod1, prod2 | Alice, Bob, Charlie
silver | prod3 | Alice
何かのようにすべての製品とすべての顧客に参加するリクたい:
SELECT PRODUCTS.PROMO
, CONCAT(PRODUCTS.DESCR)
, STUFF(
(SELECT '/' + CUSTOMERS.NAME
FROM CUSTOMERS
WHERE CUSTOMERS.ID = ORDERS.ID
FOR XML PATH (''))
, 1, 3, '')
FROM PRODUCTS
INNER JOIN ORDERS
ON PRODUCTS.ID = ORDERS.ID_P
WHERE PRODUCTS.ID < 3
GROUP BY PRODUCTS.PROMO
これはSQLで実現できますか?
https://stackoverflow.com/questions/451415/simulating-group-concat-mysql-function-in-microsoft-sql-server-2005 – jarlh
@jarlh:ありがとう、私はそのポストから始めましたが、GROUP BYには含まれていないのでCUSTOMER.NAMEが選択リストで無効ですが、私は顧客または製品ごとにグループ化したくありません。 – dg3