Я не уверен, как описать вопрос, но я пытаюсь дать предложения о том, какие коды приписать тарифам.Я делаю это в Oracle.
Вот моя структура базы данных:
CODE (
CODEID *PK NCHAR(10)
)
CODETARIFF (
TARIFFNO NCHAR(15) *PK *FK
CODEID NCHAR(10) *PK *FK
)
TARIFF (
TARIFFNO NCHAR(15) *PK
)
Поэтому я пытаюсь логически создать шаблоны для того, какие коды должны быть назначены тарифам.Я представляю, что показываю что-то вроде: «6 тарифов также имеют эти 2 кода, связанные с ними»
Я пробовал это, но подсчеты, которые возвращаются для каждого из кодов, на самом деле не показываютшаблон, они действительно показывают только случаи, когда появляется один код с двумя указанными мною.
SELECT COUNT(*), CodeID
FROM CodeTariff
INNER JOIN (
SELECT TariffNo, COUNT(*)
FROM CodeTariff
WHERE CodeID IN ('ABC', 'DEF')
GROUP BY TariffNo
HAVING COUNT(*) > 1) SQ
ON CodeTariff.TariffNo = SQ.TariffNo
WHERE CodeID NOT IN ('ABC', 'DEF')
GROUP BY CodeTariff.CodeID
ORDER BY COUNT(*) DESC;
Извините, если это сбивает с толку.
Я не знаю, возможно ли это вообще, но я ищу такой вывод:
Данные:TariffCode
TariffNo CodeID
1111 ABC
1111 DEF
2222 ABC
2222 DEF
2222 GHI
2222 JKL
3333 ABC
3333 DEF
3333 GHI
3333 JKL
Вывод: (при наличии тарифа 1111)
CodesToAdd Count
GHI, JKL 2
Чтобы я мог отобразить:
2 других тарифа имеют коды GHI и JKL, связанные сих.Хотите добавить эти коды к тарифу 1111?