Я пытаюсь удалить повторяющиеся записи в таблице, но если они дублируются для записи из другой.SQL-удаление записей с группой по нескольким таблицам
Следующий запрос дает мне количество дубликатов записей на «bodyshop». Im пытается удалить несколько счетов-фактур для каждого bodyshop.
SELECT
inv.InvoiceNo, job.BodyshopId, COUNT(*)
FROM
[Test].[dbo].[Invoices] as inv
join [Test].[dbo].Repairs as rep on rep.Id = inv.RepairId
join [Test].[dbo].Jobs as job on job.Id = rep.JobsId
GROUP BY
inv.InvoiceNo, job.BodyshopId
HAVING
COUNT(*) > 1
Я хочу дублированные номера счетов-фактур на техцентр быть удалены, но я хочу сделать оригинальную один остаться.
InvoiceNo BodyshopId (No column name)
29737 16 2
29987 16 3
30059 16 2
23491 139 2
23608 139 3
23867 139 4
23952 139 3
Я хочу только номер счета 29737 быть один раз против bodyshopid 16 и т.д.
Надежда, что имеет смысл
Благодаря
Как вы знаете, какая строка является «оригинальный» Посмотрите на 'ROW_NUMBER() OVER РАЗДЕЛА BY..' – Mihai
Вы не очень, но сейчас это не имеет значения. В таблице счетов есть созданное по дате поле, которое мы могли бы использовать, чтобы сказать, что последнее или самое старое является оригинальным, но не суетится, поскольку значения одинаковы в записях. – Beginner
@Beginner: Я думаю, что min ('InvoiceNo') может быть оригиналом? – Riad