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

Откуда:
Сообщений: 265
Добрый день!

Проблема заключается в том, что у меня в программе выводится ID = -1 и тем самым отображает 0 записей :(

Когда я ввожу конкретное ID в ручную то все идеально.

Тем самым нужно что бы отображались все ID в окне.

Я думал сделать через DECLARE @ID INT но моя идея не увенчалась успехом хоть ID параметра и не было но все равно не вывел вообще не чего...

Если закомментировать
where ContractID = @id
то выдает нужное количество записей, но с точки зрения логике он не делает мне так как должно быть что бы SubVidName = name1 записывался текст через ",".

USE [EMG000]
GO
/****** Object:  StoredProcedure [ACTOR].[UIActorSelect]    Script Date: 12/30/2015 15:15:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [ACTOR].[UIActorSelect]
@ID INT,
  @Item     int,
  @Status   INT
as
begin
  SET ARITHABORT ON
  
--DECLARE @ID INT
  SELECT  /* Actor as [ID] */C2.ID, C2.Firm AS Name,/* C1.Name, */ C2.VidID, C3.Name AS VidDayName, /* C2.SubVid, */ C4.Name AS SubVidName, City AS Region, Approval = CASE C2.Approval WHEN 4 THEN 'Аккредитован' WHEN 5 THEN 'Отклонен' WHEN 6 THEN 'В черном списке' end, C2.Status,  /* C2.Approval, */ C2.DateRegLegal,
  C3.Name AS ActivityName, C4.Name AS SubActivityName
  into #Temp
  FROM ContractFull C2
  LEFT JOIN DictContractActivity C3 ON C3.VidID = C2.VidID
  LEFT JOIN DictContractSubsActivity C4 ON C4.ID = C2.SubVid AND C4.PodVid = C3.VidID
  WHERE C2.ID = @ID --AND ItemID = @Item AND C2.Status > @Status
	
	select SubActivity 
	into #SubActivityID
	from ContractFullSubActivity 
	where ContractID = @id
	
	--SELECT * FROM #SubActivityID 
	
	SELECT Name
	into #subTemp
	from DictContractSubsActivity d
		inner join #SubActivityID d1 on d.ID = d1.SubActivity
	--where podvid = (select VidID from #temp)
	where podvid in (select VidID from #temp)
	
	--SELECT * FROM #subTemp
	
	select
	 stuff
	 (
	  (
	   select t2.Name+','
	   from #subTemp t2
	   
	   for xml path('')
	  ,type
	  ).value('.','varchar(max)'),
	  1,0,''
	 ) as Name1
	into #sub
	from #subTemp t1
	
	--SELECT * FROM #sub
	
	update #temp
	set SubVidName = name1
	from #sub
	
	select * from #temp
	                                                                                          
END
5 янв 16, 14:43    [18643977]     Ответить | Цитировать Сообщить модератору
 Re: Отображение записей на экран.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Pabl0
Я думал сделать через DECLARE @ID INT но моя идея не увенчалась успехом хоть ID параметра и не было но все равно не вывел вообще не чего...

Значение у переменной появляется в момент DECLARE. И значение это - NULL.
Поэтому ваше WHERE C2.ID = @ID соответствует WHERE C2.ID = NULL
5 янв 16, 14:53    [18644000]     Ответить | Цитировать Сообщить модератору
 Re: Отображение записей на экран.  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Pabl0
Проблема заключается в том, что у меня в программе выводится ID = -1 и тем самым отображает 0 записей :(

Когда я ввожу конкретное ID в ручную то все идеально.
Откуда мы можем знать что и как вы там в программе вводите и как оно отображается?
Научитесь формулировать свои мысли, потому что я лично вообще ничего не понял.
5 янв 16, 22:56    [18645727]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить