У наших клиентов есть счета за свои автомобили. У некоторых клиентов есть несколько транспортных средств, следовательно, несколько номерных знаков. Иногда у некоторых клиентов также есть разные страховые счета для своих автомобилей.
Мне нужен список учетных записей, в которых есть:
- Более 1 номерного знака и
- Идентификатор более 1 страхового счета
Я использую 3 таблицы:
Account
таблица A для информации об аккаунтеPlate
таблица P для информации о номерных знакахEventLog
таблица E для информации о том, когда было отправлено письмо с уведомлением
Отношение:
A.AccountId = P.AccountId = E.AccountId
Мой код на данный момент:
SELECT
A.AccountNumber, A.AccountId, A.CurrentBalance,
E.NotificationDt,
P.LicPlateNo, A.RegistrationTypeId, P.InsuranceAccountId
FROM
Account A
INNER JOIN
Plate P ON A.AccountId = P.AccountId
INNER JOIN
EventLog E ON A.AccountId = E.AccountId
WHERE
A.RegistrationTypeId = 3
AND P.EndDate IS NULL
AND A.AccountStatusId = 1
AND A.DelinquencyStatusId = 11
AND E.EventId = 64
AND P.PlateStatusId = 1
ORDER BY
AccountNumber, A.AccountId, P.LicPlateNo
Мои образцы данных выглядят так:
+---------+---------+---------+-------------+----------+---+--------+
|AccNo | AccId |CurrBal |NotifDt |LicPlateNo|RTI|InsAccId|
+---------+---------+---------+-------------+----------+---+--------+
|21234561 |123456 | 56.79| 2017-01-01|ABC123 | 3|1234ABC |
|21234572 |123457 | 83.25| 2017-01-03|DEF345 | 3|345DEF |
|22345672 |234567 | 104.38| 2017-01-03|GHI345 | 3|567GHI |
|22345672 |234568 | 104.38| 2017-01-03|JKL678 | 3|789MNO |
+---------+---------+---------+-------------+----------+---+--------+
В моих выборочных данных последние два столбца относятся к одному и тому же AccountNumber
, у которого разные LicencePlateNos
и разные Insurance AccountIds
.
Я бы хотел, чтобы мои данные выглядели так:
+---------+---------+---------+-------------+----------+---+--------+
|22345672 |234567 | 104.38| 2017-01-03|GHI345 | 3|567GHI |
|22345672 |234568 | 104.38| 2017-01-03|JKL678 | 3|789MNO |
+---------+---------+---------+-------------+----------+---+--------+
Каким будет код, который предоставит мне эти данные?
Я пробовал использовать предложение GROUP BY... HAVING
, но это дает мне только уникальные AccountNumber
с несколькими номерными знаками. Я хотел бы также показать разные номера номерных знаков и разные InsuranceAccountID
.