Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 дублирование записи.  [new]
tnirof
Member

Откуда:
Сообщений: 86
Добрый день.
Уважаемые форумчане, возник некий вопрос в котором прошу вашей помощи у вас.

пытаюсь вывести записи из "представления" и на выходе имею двойные записи, с чем это может быть связанно?
( данные выводятся, но каждая строка таблицы дублируется снизу, в результате имею в два раза больше данных)

код представления

SELECT
dbo.Персонал.TabN, dbo.[Фото персонала].Photo, dbo.Персонал.F, dbo.Персонал.I, dbo.Персонал.O, dbo.Персонал.PrKva, dbo.Персонал.DolgK, dbo.[Спр Должностей].DolgI, dbo.Персонал.CexK, dbo.[Спр Подразделений].CexI, dbo.Персонал.DateRog, dbo.Персонал.MestoRog, dbo.Персонал.PaspK, dbo.[Спр ДУЛ].PaspI, dbo.Персонал.PasSer, dbo.Персонал.PasNum, dbo.Персонал.DateVid, dbo.Персонал.KemVid, dbo.Персонал.INNp, dbo.Персонал.SerINN, dbo.Персонал.NumBlancINN, dbo.Персонал.NumPens, dbo.Персонал.NumMedStr, dbo.Персонал.NumSKD, dbo.Персонал.DateNoSmoking, dbo.Персонал.Adres,
dbo.Персонал.AdresFakt, dbo.Персонал.DomTel, dbo.Персонал.PrimPers, dbo.Персонал.FaktPrich, dbo.Персонал.NumZap, dbo.Персонал.NumGraf, dbo.Персонал.Smena, dbo.Персонал.DateStagNe, dbo.Персонал.DateStagOb, dbo.Персонал.StagNeMinus, dbo.Персонал.StagObMinus, dbo.Персонал.PrUchNew, dbo.Персонал.DateTarif, dbo.ПрУв.ПрУв, dbo.НепрСтажПредпр.DateStart
FROM
dbo.Персонал INNER JOIN
dbo.[Фото персонала] ON dbo.Персонал.TabN = dbo.[Фото персонала].TabN INNER JOIN
dbo.ПрУв ON dbo.Персонал.TabN = dbo.ПрУв.TabN INNER JOIN
dbo.НепрСтажПредпр ON dbo.Персонал.TabN = dbo.НепрСтажПредпр.TabN INNER JOIN
dbo.[Спр Должностей] ON dbo.Персонал.DolgK = dbo.[Спр Должностей].DolgK INNER JOIN
dbo.[Спр Подразделений] ON dbo.Персонал.CexK = dbo.[Спр Подразделений].CexK INNER JOIN
dbo.[Спр ДУЛ] ON dbo.Персонал.PaspK = dbo.[Спр ДУЛ].PaspK


с уважением.
1 фев 12, 13:07    [12010690]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
Glory
Member

Откуда:
Сообщений: 104751
tnirof
пытаюсь вывести записи из "представления" и на выходе имею двойные записи, с чем это может быть связанно?

Это связано с тем, как вы написали свой запрос
1 фев 12, 13:11    [12010730]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62908
Это не дублирование, это другие записи. Если все таки считаешь что это дубли, то добавь distinct
1 фев 12, 13:16    [12010804]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
tnirof
Member

Откуда:
Сообщений: 86
Glory
tnirof
пытаюсь вывести записи из "представления" и на выходе имею двойные записи, с чем это может быть связанно?

Это связано с тем, как вы написали свой запрос


я не спорю, может и запрос корявый, но писал его не я.
Данный запрос формируется автоматически при помощи графической оболочки, когда рисуешь связи между таблицами.
"Management Studio"

2 Anatoly Podgoretsky
Спасибо за совет, попробую.
1 фев 12, 14:31    [12011827]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
Glory
Member

Откуда:
Сообщений: 104751
tnirof
я не спорю, может и запрос корявый, но писал его не я.
Данный запрос формируется автоматически при помощи графической оболочки, когда рисуешь связи между таблицами.

Ну так и напишите правильный запрос
1 фев 12, 14:34    [12011853]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
tnirof
Member

Откуда:
Сообщений: 86
Anatoly Podgoretsky
Это не дублирование, это другие записи. Если все таки считаешь что это дубли, то добавь distinct


к сожалению я не могу использовать "distinct", так как в выводе присутствуют "Тип данных image".
1 фев 12, 14:36    [12011870]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
tnirof
Member

Откуда:
Сообщений: 86
Glory
tnirof
я не спорю, может и запрос корявый, но писал его не я.
Данный запрос формируется автоматически при помощи графической оболочки, когда рисуешь связи между таблицами.

Ну так и напишите правильный запрос



а собственно в чем ошибка данного запроса ?


SELECT
dbo.Персонал.TabN, dbo.Персонал.F,
dbo.Персонал.I, dbo.Персонал.O, dbo.Персонал.PrKva, dbo.Персонал.DolgK,
dbo.Персонал.CexK, dbo.Персонал.DateRog, dbo.Персонал.MestoRog,
dbo.Персонал.PaspK, dbo.Персонал.PasSer, dbo.Персонал.PasNum, dbo.Персонал.DateVid,
dbo.Персонал.KemVid, dbo.Персонал.INNp, dbo.Персонал.SerINN, dbo.Персонал.NumBlancINN,
dbo.Персонал.NumPens, dbo.Персонал.NumMedStr, dbo.Персонал.NumSKD,
dbo.Персонал.DateNoSmoking, dbo.Персонал.Adres,
dbo.Персонал.AdresFakt, dbo.Персонал.DomTel, dbo.Персонал.PrimPers,
dbo.Персонал.FaktPrich, dbo.Персонал.NumZap, dbo.Персонал.NumGraf,
dbo.Персонал.Smena, dbo.Персонал.DateStagNe, dbo.Персонал.DateStagOb,
dbo.Персонал.StagNeMinus, dbo.Персонал.StagObMinus, dbo.Персонал.PrUchNew,
dbo.Персонал.DateTarif, dbo.ПрУв.ПрУв, dbo.НепрСтажПредпр.DateStart, dbo.[Фото персонала].Photo,
dbo.[Спр Должностей].DolgI, dbo.[Спр Подразделений].CexI, dbo.[Спр ДУЛ].PaspI
FROM
dbo.Персонал
INNER JOIN
dbo.[Фото персонала] ON dbo.Персонал.TabN = dbo.[Фото персонала].TabN
INNER JOIN
dbo.ПрУв ON dbo.Персонал.TabN = dbo.ПрУв.TabN
INNER JOIN
dbo.НепрСтажПредпр ON dbo.Персонал.TabN = dbo.НепрСтажПредпр.TabN
INNER JOIN
dbo.[Спр Должностей] ON dbo.Персонал.DolgK = dbo.[Спр Должностей].DolgK
INNER JOIN
dbo.[Спр Подразделений] ON dbo.Персонал.CexK = dbo.[Спр Подразделений].CexK
INNER JOIN
dbo.[Спр ДУЛ] ON dbo.Персонал.PaspK = dbo.[Спр ДУЛ].PaspK


я в очередной раз извиняюсь, может я что то не досмотрел или не знаю, не могли бы вы тыкнуть носом ?
1 фев 12, 15:09    [12012207]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
Glory
Member

Откуда:
Сообщений: 104751
tnirof
а собственно в чем ошибка данного запроса ?

В том, что он возвращает не тот результат, который вам нужен
1 фев 12, 15:11    [12012224]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
tnirof
Member

Откуда:
Сообщений: 86
Glory
tnirof
а собственно в чем ошибка данного запроса ?

В том, что он возвращает не тот результат, который вам нужен


Уважаемый Glory.
Скажите пожалуйста откуда у вас такая надменность? сколько бы я не читал ваши посты- ответы, всюду вы пишете образные предложения в стиле:

- Ваша ошибка в вашей ошибке!

И ни когда не даете точных ответов, хотя просят вас люди не нагло, а с уважением.
1 фев 12, 15:15    [12012271]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
tnirof
я в очередной раз извиняюсь, может я что то не досмотрел или не знаю, не могли бы вы тыкнуть носом ?
Вы бы скрипты таблиц показали.
Где там PK или AK - непонятно.
Может у персонала по 100500 фоток?!
Тогда первый же джойн так всё это дело размножит, что...
Если с ним всё в порядке, то же самое относится и к последующим.
А абстрактно рассуждать на эту тему совершенно невозможно.
1 фев 12, 15:16    [12012280]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
Glory
Member

Откуда:
Сообщений: 104751
tnirof
И ни когда не даете точных ответов, хотя просят вас люди не нагло, а с уважением.

О чем вы попросили в этой теме ?
Угадать за вас, чего и сколько вы хотите выбрать из ваших таблиц ?
1 фев 12, 15:20    [12012329]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
tnirof
Member

Откуда:
Сообщений: 86
Glory
tnirof
И ни когда не даете точных ответов, хотя просят вас люди не нагло, а с уважением.

О чем вы попросили в этой теме ?
Угадать за вас, чего и сколько вы хотите выбрать из ваших таблиц ?


Ну если вы так точно можете судить что запрос ошибочный, то наверно Вы поняли, что я хотел получить, верно ?
Или ( что мне бы не хотелось думать) вы просто читаете первое и последнее слово поста даже не задумываясь.
1 фев 12, 15:26    [12012385]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
Glory
Member

Откуда:
Сообщений: 104751
tnirof
Ну если вы так точно можете судить что запрос ошибочный, то наверно Вы поняли, что я хотел получить, верно ?

Конечно. Вы хотели получить вот такой результат
select 1 as result
Это именно тот запрос, который вам нужен


tnirof
Или ( что мне бы не хотелось думать) вы просто читаете первое и последнее слово поста даже не задумываясь.

А сколько слов вы прочитали из темы Рекомендации по оформлению сообщений ?
1 фев 12, 15:28    [12012413]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
tnirof
Member

Откуда:
Сообщений: 86
iap
tnirof
я в очередной раз извиняюсь, может я что то не досмотрел или не знаю, не могли бы вы тыкнуть носом ?
Вы бы скрипты таблиц показали.
Где там PK или AK - непонятно.
Может у персонала по 100500 фоток?!
Тогда первый же джойн так всё это дело размножит, что...
Если с ним всё в порядке, то же самое относится и к последующим.
А абстрактно рассуждать на эту тему совершенно невозможно.


К сожалению это было бы слишком трудоемко, ибо таблицы создавались не в ручную а через импорт из акцесс базы.
прикрепляю скрин "представления" на которой собственно и видно все таблицы..
по вашей догадке могу сказать, она могла бы иметь место на жазнь, если бы с таблиц тянулись все столбцы.
Картинка с другого сайта.

картинка
1 фев 12, 15:38    [12012531]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
tnirof
Member

Откуда:
Сообщений: 86
Glory
tnirof
Ну если вы так точно можете судить что запрос ошибочный, то наверно Вы поняли, что я хотел получить, верно ?

Конечно. Вы хотели получить вот такой результат
select 1 as result
Это именно тот запрос, который вам нужен


tnirof
Или ( что мне бы не хотелось думать) вы просто читаете первое и последнее слово поста даже не задумываясь.

А сколько слов вы прочитали из темы Рекомендации по оформлению сообщений ?


Уважаемый Glory.
Только что перечитал "Рекомендации по оформлению сообщений", и не увидел там ни чего противоречащего моему посту.
Одно я только не указал, "скрипты таблиц и заполнения тестовыми данными" ( причину я описал),
и собственно:
"Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) "

спасибо.
1 фев 12, 15:51    [12012656]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
tnirof,

самый тупой вариант найти ваши задвоенные записи это вывести в результат запроса все поля из всех подключенных к запросу таблиц, и посмотреть глазами в каких полях записи всегда разные, это и будет причина задвоений, если ничего не нашлось, значит в какойто(кихто) таблицах есть совершенно одинаковые записи ищи те их.
1 фев 12, 15:57    [12012712]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
tnirof
Member

Откуда:
Сообщений: 86
iap
tnirof
я в очередной раз извиняюсь, может я что то не досмотрел или не знаю, не могли бы вы тыкнуть носом ?
Вы бы скрипты таблиц показали.
Где там PK или AK - непонятно.
Может у персонала по 100500 фоток?!
Тогда первый же джойн так всё это дело размножит, что...
Если с ним всё в порядке, то же самое относится и к последующим.
А абстрактно рассуждать на эту тему совершенно невозможно.


Все же проверил, "АВОСЬ".
удалил из преставления таблицу "Фото персонала" и о чудо, все как надо заработало.. огромное спасибо за подсказку.

2 Glory
И вам тоже спасибо, хотя даже если вы модератор или админ, Вам стоит учиться у людей, помогать.

а то ей богу вы мне терминатора напоминаете... =)
1 фев 12, 16:03    [12012760]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
tnirof,

В Вашем запросе уберите любую одну таблицу и поля с ней связанные.
Посмотрите, записи по-прежнему двоятся или нет?

Если Да, убирайте ещё одну таблицу (и поля из неё). И т.д.
1 фев 12, 16:03    [12012765]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
tnirof
Member

Откуда:
Сообщений: 86
WarAnt
tnirof,

самый тупой вариант найти ваши задвоенные записи это вывести в результат запроса все поля из всех подключенных к запросу таблиц, и посмотреть глазами в каких полях записи всегда разные, это и будет причина задвоений, если ничего не нашлось, значит в какойто(кихто) таблицах есть совершенно одинаковые записи ищи те их.


перед тем как удалить, это и проделал. В любом случае, всем спасибо за неравнодушие.
1 фев 12, 16:04    [12012779]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
Glory
Member

Откуда:
Сообщений: 104751
tnirof
Одно я только не указал, "скрипты таблиц и заполнения тестовыми данными" ( причину я описал),
и собственно:
"Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) "

спасибо.

Т.е. вы считаете постановку задачи "Сделайте мне такой запрос, который вернет мне нужные данные" достаточно описивающей то, что собственно вы хотите получить ?
1 фев 12, 16:08    [12012825]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
Glory
Member

Откуда:
Сообщений: 104751
tnirof
2 Glory
И вам тоже спасибо, хотя даже если вы модератор или админ, Вам стоит учиться у людей, помогать.


И как помочь человеку, который не в силах сказать, что он хочет получить ?
Как и в прошлой вашей теме - вот сделайте мне то, что я хочу. Что, слабо догадаться, чего же я хочу ?!
1 фев 12, 16:10    [12012849]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
tnirof
Member

Откуда:
Сообщений: 86
Glory
tnirof
Одно я только не указал, "скрипты таблиц и заполнения тестовыми данными" ( причину я описал),
и собственно:
"Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) "

спасибо.

Т.е. вы считаете постановку задачи "Сделайте мне такой запрос, который вернет мне нужные данные" достаточно описивающей то, что собственно вы хотите получить ?


и где это я такое писал ? Картинка с другого сайта.
В любом случае давайте не будет бодаться на пустом месте.
Спасибо.
1 фев 12, 16:15    [12012917]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
Xordal
Member

Откуда: Таганрог
Сообщений: 536
tnirof
+
Glory
пропущено...

Конечно. Вы хотели получить вот такой результат
select 1 as result
Это именно тот запрос, который вам нужен


пропущено...

А сколько слов вы прочитали из темы Рекомендации по оформлению сообщений ?


Уважаемый Glory.
Только что перечитал "Рекомендации по оформлению сообщений", и не увидел там ни чего противоречащего моему посту.
Одно я только не указал, "скрипты таблиц и заполнения тестовыми данными" ( причину я описал),
и собственно:
"Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) "

спасибо.

Вы не предоставили пример, в котором указаны данные, находящиеся в таблице и что вы хотите получить в результате выполнения запроса.
Ну и насчет трудоемкости: в MS SMS есть механизм для создания скрипта, который сгенерирует ваши таблички. Вам останется только вставить тексты сюда (желательно, в спойлере), написать скриптик для заполнения тестовыми данными и нарисовать табличку с результатом, который хотите получить.

Более трудоемко - это гадать что Вы хотите.
1 фев 12, 16:15    [12012918]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
Xordal
Member

Откуда: Таганрог
Сообщений: 536
Написал ответ и отвлекся, не отправил :) Тут уже все решили :)
1 фев 12, 16:17    [12012947]     Ответить | Цитировать Сообщить модератору
 Re: дублирование записи.  [new]
Glory
Member

Откуда:
Сообщений: 104751
tnirof
и где это я такое писал ?
В любом случае давайте не будет бодаться на пустом месте.

Где вы написали про то, что хотите получить ?
Укажите сообщение и цитату в нем
1 фев 12, 16:19    [12012977]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить