2013-09-18 2 views
0

Мне нужно потянуть имя таблицы как значение в столбце. Что мешает, так это то, что запрос настраивается как цикл - запрос извлекает данные из нескольких таблиц, но без имени таблицы/идентификатора я не могу определить, из какой таблицы были получены данные. Это довольно большой запрос, поэтому я не включаю в него всю вещь, а скорее информацию, которая, как я считаю, представляет мою проблему. Цикл проходит около 100 таблиц, но результаты не отражают таблицу, из которой поступают данные. Пример результатов также показан ниже.выберите имя таблицы в запросе

DECLARE @zone integer 
DECLARE ZoneCursor CURSOR FOR 

SELECT ZoneID 
FROM Zone 
ORDER BY ZoneID 

     OPEN ZoneCursor 

     FETCH NEXT FROM ZoneCursor into @zone 

     WHILE @@FETCH_STATUS = 0 

     BEGIN 

EXEC(' 

declare @aStart1date as varchar(20) 
declare @aStart2date as varchar(20) 
-- ENTER THE START AND STOP DATES 
set @aStart1date = ''07/24/2013'' 
set @aStart2date = ''07/24/2013'' 


SELECT 
    e.NetworkID 
    ,network.name as Network 
    ,Convert(varchar(16),DateAdd(day,e.BreakDate,''08-12-1960''),101) as Break_Date 
    ,Convert(Varchar(32),DateAdd(Second,e.BreakTime,''00:00:00''),108) as Break_Time 
    ,b.Length 
    ,(CASE 
      WHEN b.availtypeid = -1 THEN ''Split Break'' 
      WHEN b.availtypeid = 0 THEN ''None'' 

    END) as AvailType 

FROM 
    event' + @zone + ' e (nolock), break' + @zone + ' b (nolock), network, availtype 

WHERE 
     (e.breakdate >= datediff(day,''8/12/1960'', @aStart1date) 
     and e.breakdate<= datediff(day,''8/12/1960'', @aStart2date)) 
     and e.networkid = b.networkid 
     and e.breakdate = b.breakdate 
     and e.breaktime = b.breaktime 
     and b.networkid = network.networkid 
     and e.networkid = network.networkid 

GROUP by e.networkid, network.name, e.breakdate, e.breaktime,b.length, e.status, b.availtypeid 
ORDER by e.networkid, e.breaktime ') 

      FETCH NEXT FROM ZoneCursor into @zone 
     END 

     CLOSE ZoneCursor 

DEALLOCATE ZONECURSOR 

Результаты:

NetworkID Network Break_Date Break_Time Length AvailType 
1 CNN 07/24/2013 00:15:00  60 Interconnect 
1 CNN 07/24/2013 00:31:00   60 Interconnect 

ответ

3
SELECT ''' + @zone +''' as zone 
,e.NetworkID 
,network.name as Network 
... 
+0

Вы спасатель жизни! Это прекрасно работало, и я не могу вас поблагодарить. –

Смежные вопросы