Как я могу агрегировать поле PaymentType, чтобы, если клиент использовал ранее все типы платежей, на экране типа платежа отображалось «Все» вместо «Ca sh», «Чек», «Кредитная / дебетовая карта», или «Корпоративный счет»? Ниже приведен сценарий, необходимый для демонстрации проблемы.
CREATE TABLE #Customer (
CustomerId int,
CustomerName nvarchar(100),
Address nvarchar(100),
)
INSERT INTO #Customer
VALUES (1, 'Bill', '123 1st St'),
(2, 'Fred', '111 Market St'),
(3, 'Lisa', '01 Boulevard')
CREATE TABLE #Product (
ProductId int,
ProductName nvarchar(100)
)
INSERT INTO #Product
VALUES (1, 'Corn Flakes'),
(2, 'Cheerios'),
(3, 'Granoloa')
CREATE TABLE #PaymentType (
PaymentId int,
PaymentTypeName nvarchar(100)
)
INSERT INTO #PaymentType
VALUES (1, 'Cash'),
(2, 'Check'),
(3, 'Credit/Debit Card'),
(4, 'Corporate Account')
CREATE TABLE #TransactionLog (
LogId int,
ProductId int,
CustomerId int,
PaymentId int,
Amount float
)
INSERT INTO #TransactionLog
VALUES (1, 1, 1, 1, 2.00),
(2, 2, 1, 2, 2.40),
(3, 3, 1, 3, 1.80),
(4, 1, 1, 4, 2.00),
(5, 1, 2, 4, 2.00),
(6, 2, 3, 2, 2.40)
SELECT * from #Customer
SELECT * from #Product
SELECT * from #PaymentType
SELECT * from #TransactionLog
SELECT
c.CustomerName,
p.ProductName,
pt.PaymentTypeName as PaymentType
FROM #TransactionLog t
join #Product p on t.ProductId = p.ProductId
join #Customer c on t.CustomerId = c.CustomerId
join #PaymentType pt on t.PaymentId = pt.PaymentId
DROP TABLE #Customer
DROP TABLE #Product
DROP TABLE #PaymentType
DROP TABLE #TransactionLog