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

Откуда:
Сообщений: 6
Добрый день. Я не силен в SQL, но вот надо сделать запрос.
Есть таблицы:

1-Проверки
номер участка | проверяющий | дата | результат|
1 | проверяющий1 | 11.11.11 | акт1 |
1 | проверяющий2 | 13.01.12 | акт3 |
2 | проверяющий2 | 22.11.12 | акт2


1-Оснащение
номер участка | компьютеры | принтеры |
1 | 15 | 10 |
2 | 8 | 5 |

Делаю запрос, чтобы можно было видеть всю информацию об одном участке. А в результате значения дублируются:
результат запроса:

номер участка | проверяющий | дата | результат| номер участка | компьютеры | принтеры |
1 | проверяющий1 | 11.11.11 | акт1 |1 | 15 | 10 |
1 | проверяющий2 | 13.01.12 | акт3 |1 | 15 | 10 |


Можно ил сделать так, чтобы данные не дублировались, если в таблице (оснащение) только одна строка с необходимыми данными, остальные могут быть пустые вот так:

номер участка | проверяющий | дата | результат| номер участка | компьютеры | принтеры |
1 | проверяющий1 | 11.11.11 | акт1 |1 | 15 | 10 |
| проверяющий2 | 13.01.12 | акт3 | | | |

Спасибо.
22 сен 15, 05:05    [18178411]     Ответить | Цитировать Сообщить модератору
 Re: Дублируются значения в результате запроса.  [new]
zhsv
Member

Откуда:
Сообщений: 6
Сори за форматирвоание.

1-Проверки
номер участкапроверяющийдатарезультат
1проверяющий111.11.11акт1
1проверяющий213.01.12акт3
2проверяющий222.11.12акт2


1-Оснащение
номер участкакомпьютерыпринтеры
11510
285

Делаю запрос, чтобы можно было видеть всю информацию об одном участке. А в результате значения дублируются:
результат запроса:

номер участкапроверяющийдатарезультатномер участкакомпьютеры принтеры
1проверяющий111.11.11 акт111510
1 проверяющий213.01.12 акт311510


Можно ил сделать так, чтобы данные не дублировались, если в таблице (оснащение) только одна строка с необходимыми данными, остальные могут быть пустые вот так:

номер участкапроверяющийдатарезультатномер участкакомпьютеры принтеры
1проверяющий111.11.11 акт111510
проверяющий213.01.12 акт3
22 сен 15, 05:14    [18178414]     Ответить | Цитировать Сообщить модератору
 Re: Дублируются значения в результате запроса.  [new]
aleks2
Guest
Сделать то можно. Тока нафига?
22 сен 15, 05:23    [18178418]     Ответить | Цитировать Сообщить модератору
 Re: Дублируются значения в результате запроса.  [new]
zhsv
Member

Откуда:
Сообщений: 6
надо смотреть сводную таблицу по участкам, но кругом одни дубли

номер участкапроверяющий датарезультатномер участкакомпьютерыпринтеры
1проверяющий111.11.11акт111510
1проверяющий213.01.12акт311510
1проверяющий315.01.12акт311510
1проверяющий415.02.12акт411510


таблиц на самом деле больше и дублей больше

ну еще можно было бы как-то просто вывести пять запросов (по кол-ву таблиц)
Участок №1
табл1


табл2


табл3
22 сен 15, 05:30    [18178421]     Ответить | Цитировать Сообщить модератору
 Re: Дублируются значения в результате запроса.  [new]
aleks2
Guest
Ты уж определись, страдалец, чего те нужно.
22 сен 15, 05:56    [18178430]     Ответить | Цитировать Сообщить модератору
 Re: Дублируются значения в результате запроса.  [new]
zhsv
Member

Откуда:
Сообщений: 6


общую инфу об участке, без дубликатов, а там как проще...
22 сен 15, 05:59    [18178431]     Ответить | Цитировать Сообщить модератору
 Re: Дублируются значения в результате запроса.  [new]
Glory
Member

Откуда:
Сообщений: 104760
zhsv
общую инфу об участке, без дубликатов, а там как проще...

И что вам мешает написать запрос то ?
22 сен 15, 08:57    [18178664]     Ответить | Цитировать Сообщить модератору
 Re: Дублируются значения в результате запроса.  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20964
Запрос написАть можно. Но это неправильно. Идеологически.
Запрос и должен дать ВСЕ данные. А их отображением в таком кастрированном виде должна заниматься клиентская часть приложения.
22 сен 15, 08:59    [18178672]     Ответить | Цитировать Сообщить модератору
 Re: Дублируются значения в результате запроса.  [new]
zhsv
Member

Откуда:
Сообщений: 6
Glory
zhsv
общую инфу об участке, без дубликатов, а там как проще...

И что вам мешает написать запрос то ?


Знания (
22 сен 15, 09:43    [18178858]     Ответить | Цитировать Сообщить модератору
 Re: Дублируются значения в результате запроса.  [new]
Glory
Member

Откуда:
Сообщений: 104760
zhsv
Glory
пропущено...

И что вам мешает написать запрос то ?


Знания (

если вы не знаете синтаксиса SELECT, то самое время начать его изучать
22 сен 15, 09:44    [18178868]     Ответить | Цитировать Сообщить модератору
 Re: Дублируются значения в результате запроса.  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
Select
Join
group by
22 сен 15, 11:07    [18179290]     Ответить | Цитировать Сообщить модератору
 Re: Дублируются значения в результате запроса.  [new]
israelshamir
Member

Откуда:
Сообщений: 198
zhsv,

if object_id('dbo.T1', 'U') is not null drop table dbo.T1;
create table dbo.T1
(
  lot_number int not null,
  checking  nvarchar(15),
  date_time datetime,
  result nvarchar(15)
)
go
insert into dbo.T1
	(lot_number, checking, date_time, result)
values
	(1, 'Проверяющий1', '20111111', 'Акт1'),
	(1, 'Проверяющий2', '20130112', 'Акт3'),
	(2, 'Проверяющий2', '20121122', 'Акт2')

select * from dbo.T1;

go;

if object_id('dbo.T2', 'U') is not null drop table dbo.T2;
create table dbo.T2
(
  lot_number int not null,
  computers  int not null,
  printers   int not null
)
go
insert into dbo.T2
	(lot_number, computers, printers)
values
	(1, 15, 10),
	(1, 8,  5)
	
select * from T2

select T1.lot_number, checking, date_time, result, computers, printers
from 
	T1 inner join T2
		on T1.lot_number = T2.lot_number
	 
22 сен 15, 16:43    [18181370]     Ответить | Цитировать Сообщить модератору
 Re: Дублируются значения в результате запроса.  [new]
_human
Member

Откуда:
Сообщений: 566
zhsv
Делаю запрос

запрос покажите
zhsv
А в результате значения дублируются

нет там дублей
22 сен 15, 16:56    [18181473]     Ответить | Цитировать Сообщить модератору
 Re: Дублируются значения в результате запроса.  [new]
Кот Матроскин
Member

Откуда: Москва
Сообщений: 8933
сделать можно - но как правильно отмечено, такой фигней должен заниматься клиент.

Общая идея
;with cte (...., rownum)
as 
(select .....,
             row_number() over (partition by [номер участка] order by [номер участка] ) as rownum
from ....
)
select case when rownum = 1 then [номер участка] else '' end,
         ...
from cte
22 сен 15, 18:34    [18182001]     Ответить | Цитировать Сообщить модератору
 Re: Дублируются значения в результате запроса.  [new]
zhsv
Member

Откуда:
Сообщений: 6
Вот запрос в Access

SELECT Оснащение.[номер участка], Оснащение.компьютеры, Оснащение.принтеры, Проверки.проверяющий, Проверки.Дата, Проверки.Рузельтат, [Характеристики участков].[Тип здания], [Характеристики участков].[Год постройки]
FROM [Характеристики участков] INNER JOIN (Проверки INNER JOIN Оснащение ON Проверки.[Номер участка] = Оснащение.[номер участка]) ON [Характеристики участков].[Номер участка] = Оснащение.[номер участка]
WHERE (((Оснащение.[номер участка])=1));



итог

Номер участкакомпьютерыпринтерыпроверяющийдатарезультатТип зданияГод постройки
12220проверяющий111.03.2015Акт35эт дом1980
12220проверяющий211.02.2015Акт25эт дом1980
12220проверяющий311.01.2015Акт15эт дом1980


база в приложении

К сообщению приложен файл (TtestBD.zip - 27Kb) cкачать
23 сен 15, 02:59    [18183017]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить