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

Откуда: Смоленск
Сообщений: 1005
Добрый день.
кто-нибудь сталкивался с проблемой когда генераторы отчетов выдают данные отличные от того, что выдаёт запрос запущенной в менеджмент студио при том же запросе ?

вот так выдаёт запрос менеджмент студио:
NUM FORM_date1 FORM_date2 F_QTY PRINT_date1 PRINT_date2 P_QTY
34814 07-06-2013 07-06-2013 14 25-06-2013 25-06-2013 2000
м36 05-06-2013 10-06-2013 51 06-06-2013 10-06-2013 30000
35242 11-07-2013 11-07-2013 60 16-07-2013 17-07-2013 5000
35243 NULL NULL NULL NULL NULL NULL
35143 28-06-2013 05-07-2013 115 04-07-2013 05-07-2013 15000
35144 NULL NULL NULL NULL NULL NULL

а вот так выдаёт Crystal Reports тот же запрос ,
тупо только выдаёт, никаких формул , ничего ваще , только вывод:
NUM FORM_date1 FORM_date2 F_QTY PRINT_date1 PRINT_date2 P_QTY
34814 07-06-2013 07-06-2013 14 25-06-2013 25-06-2013 2000
м36 05-06-2013 10-06-2013 51 06-06-2013 10-06-2013 30000
35242 11-07-2013 11-07-2013 60 16-07-2013 17-07-2013 5000
35243 NULL NULL NULL 5000 NULL NULL
35143 28-06-2013 05-07-2013 115 04-07-2013 05-07-2013 15000
35144 NULL NULL NULL 15000 NULL NULL


Обратите внимание на 4-е строки и на последние строки в результатах выполнения M. Studio и Crystal Reports.
(Строк на самом деле намного больше , не стал их тут все писать там тоже подобная ситуация )


верифай в кристале делал раз 10 - не помогает

причем у нас предприятии ещё практикуется делать не при помощи Crystal Reports вывод данных ,
а ещё иногда по средствам php делаем на нашей корпоративной страничке вывод:
так тоже самое :

NUM FORM_date1 FORM_date2 F_QTY PRINT_date1 PRINT_date2 P_QTY
34814 07-06-2013 07-06-2013 14 25-06-2013 25-06-2013 2000
м36 05-06-2013 10-06-2013 51 06-06-2013 10-06-2013 30000
35242 11-07-2013 11-07-2013 60 16-07-2013 17-07-2013 5000
35243 NULL NULL NULL 5000 NULL NULL
35143 28-06-2013 05-07-2013 115 04-07-2013 05-07-2013 15000
35144 NULL NULL NULL 15000 NULL NULL

профайлером запускал делает один и тот же запрос, но почему ж вывод данных то разный , что может быть ?
25 июл 13, 17:21    [14617744]     Ответить | Цитировать Сообщить модератору
 Re: разный вывод результата запроса Management Studio и генераторов отчетов.  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 1005
PS
MS SQL Server 2005
25 июл 13, 17:26    [14617779]     Ответить | Цитировать Сообщить модератору
 Re: разный вывод результата запроса Management Studio и генераторов отчетов.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
andron81
Обратите внимание на 4-е строки и на последние строки в результатах выполнения M. Studio и Crystal Reports.

Это игра в "найди 10 отличий"? Средства форматирования форума позволяют и табличку оформить (тег CSV), и цветом выделить (тег COLOR), и много что ещё. Так сказать, ткнуть пальцем в отличия.

andron81
профайлером запускал делает один и тот же запрос

Кто/что делает один и тот же запрос? И как выглядит запрос?
25 июл 13, 17:26    [14617782]     Ответить | Цитировать Сообщить модератору
 Re: разный вывод результата запроса Management Studio и генераторов отчетов.  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 1005
Гость333, извиняюсь.


вот так выдаёт запрос менеджмент студио
на запрос:
exec SPK_PLAN_ZAYAWKA_NEW 0, '20130720', '', 0,'Просвещение'
:
NUM FORM_date1 FORM_date2 F_QTY PRINT_date1 PRINT_date2 P_QTY
3481407-06-201307-06-20131425-06-201325-06-2013 2000
м3605-06-201310-06-20135106-06-201310-06-201330000
3524211-07-201311-07-20136016-07-201317-07-2013 5000
35243NULL NULL NULL NULL NULL NULL
3514328-06-201305-07-2013115 04-07-201305-07-201315000
35144NULL NULL NULL NULL NULL NULL
3514502-07-201315-07-20137612-07-201315-07-2013 10000
35146NULL NULL NULL NULL NULL NULL


а вот так выдаёт Crystal Reports тот же запрос ,
тупо только выдаёт, никаких формул , ничего ваще , только вывод:
NUM FORM_date1 FORM_date2 F_QTY PRINT_date1 PRINT_date2 P_QTY
3481407-06-201307-06-20131425-06-201325-06-2013 2000
м3605-06-201310-06-20135106-06-201310-06-201330000
3524211-07-201311-07-20136016-07-201317-07-2013 5000
35243NULL NULL NULL 5000 NULL NULL
3514328-06-201305-07-2013115 04-07-201305-07-201315000
35144NULL NULL NULL 15000 NULL NULL
3514502-07-201315-07-20137612-07-201315-07-2013 10000
35146NULL NULL NULL 10000 NULL NULL


Обратите внимание на 4-е строки и на последние строки в результатах выполнения M. Studio и Crystal Reports.
(Строк на самом деле намного больше , не стал их тут все писать там тоже подобная ситуация )


верифай в кристале делал раз 10 - не помогает

ещё практикуется делать не при помощи Crystal Reports вывод данных ,
а ещё иногда по средствам php делаем на нашей корпоративной страничке вывод:
так тоже самое :

NUM FORM_date1 FORM_date2 F_QTY PRINT_date1 PRINT_date2 P_QTY
3481407-06-201307-06-20131425-06-201325-06-2013 2000
м3605-06-201310-06-20135106-06-201310-06-201330000
3524211-07-201311-07-20136016-07-201317-07-2013 5000
35243NULL NULL NULL 5000 NULL NULL
3514328-06-201305-07-2013115 04-07-201305-07-201315000
35144NULL NULL NULL 15000 NULL NULL
3514502-07-201315-07-20137612-07-201315-07-2013 10000
35146NULL NULL NULL 10000 NULL NULL


во всех случаях отрабатывается :
exec SPK_PLAN_ZAYAWKA_NEW 0, '20130720', '', 0,'Просвещение'

ALTER proc [dbo].[SPK_PLAN_ZAYAWKA_NEW] 

--@D datetime,@IZDATEL varchar(255)
(
        @nOrg           numeric(18),
        @dtDate         datetime = null,
        @dtDateTo       datetime = null,
        @nEquip         numeric(18) = null,
		@IZDATEL varchar(255))
as
begin
declare @month int,
        @year int,
        @D datetime
select @D = @dtDate
select @month = month(@D),@year=year(@D)
select 
--TEH_END,
 NUM,
cast (replace (replace (substring (FORM,1,11),'|',''),' ','') as varchar(255)) FORM_D1,
cast (replace (replace (substring (FORM,13,12),'|',''),' ','') as varchar(255)) FORM_D2,
cast (replace (substring (FORM,26,len(FORM) ),'|','') as varchar (255)) FORM_QTY,

cast (replace (replace (substring (PECHAT,1,11),'|',''),' ','') as varchar(255)) PECHAT_D1,
cast (replace (replace (substring (PECHAT,13,12),'|',''),' ','') as varchar(255)) PECHAT_D2,
cast (replace (substring (PECHAT,26,len(PECHAT) ),'|','') as varchar (255)) PECHAT_QTY/*,

cast (replace (replace (substring (FALC,1,11),'|',''),' ','') as varchar (255)) FALC_D1,
cast (replace (replace (substring (FALC,13,12),'|',''),' ','') as varchar (255)) FALC_D2,
cast (replace (substring (FALC,26,len(FALC) ),'|','')as varchar (255)) FALC_QTY,

cast (replace (replace (substring (KRITYE,1,11),'|',''),' ','') as varchar (255)) KRITYE_D1,
cast (replace (replace (substring (KRITYE,13,12),'|',''),' ','') as varchar (255)) KRITYE_D2,
cast (replace (substring (KRITYE,26,len(KRITYE) ),'|','') as varchar (255))  KRITYE_QTY,

cast (replace (replace (substring (SHITYE,1,11),'|',''),' ','') as varchar (255)) SHITYE_D1,
cast (replace (replace (substring (SHITYE,13,12),'|',''),' ','') as varchar (255)) SHITYE_D2,
cast (replace (substring (SHITYE,26,len(SHITYE) ),'|','') as varchar (255))SHITYE_QTY,

cast (replace (replace (substring (APL,1,11),'|',''),' ','') as varchar (255)) APL_D1,
cast (replace (replace (substring (APL,13,12),'|',''),' ','') as varchar (255)) APL_D2,
cast (replace (substring (APL,26,len(APL) ),'|','') as varchar (255)) APL_QTY,

cast (replace (replace (substring (TERMO,1,11),'|',''),' ','') as varchar (255)) TERMO_D1,
cast (replace (replace (substring (TERMO,13,12),'|',''),' ','') as varchar (255)) TERMO_D2,
cast (replace (substring (TERMO,26,len(TERMO) ),'|','') as varchar (255)) TERMO_QTY,

cast (replace (replace (substring (PACK,1,11),'|',''),' ','') as varchar (255)) PACK_D1,
cast (replace (replace (substring (PACK,13,12),'|',''),' ','') as varchar (255)) PACK_D2,
cast (replace (substring (PACK,26,len(PACK) ),'|','') as varchar (255)) PACK_QTY,

cast (replace (replace (substring (SDACHA,1,11),'|',''),' ','') as varchar (255)) SDACHA_D1,
cast (replace (replace (substring (SDACHA,13,12),'|',''),' ','') as varchar (255)) SDACHA_D2,
cast (replace (substring (SDACHA,26,len(SDACHA) ),'|','') as varchar (255)) SDACHA_QTY,

cast (replace (replace (substring (OTGRUZKA,1,11),'|',''),' ','') as varchar (255)) OTGRUZKA_D1,
cast (replace (replace (substring (OTGRUZKA,13,12),'|',''),' ','') as varchar (255)) OTGRUZKA_D2,
cast (replace (substring (OTGRUZKA,26,len(OTGRUZKA) ),'|','') as varchar (255)) OTGRUZKA_QTY
*/

from
(
SELECT h.UNZ,NUM,
/*
(
select  top 1 TIME_EDIT  from LOG_EDITED (nolock) where 
(AUTHOR='Кяппина' And right (REASON ,len ('Стал Кяппина') )='Стал Кяппина')
or
(AUTHOR='Калмыкова' And right (REASON ,len ('Стал Калмыкова') )='Стал Калмыкова')
or

(AUTHOR='Гусарова' And right (REASON ,len('Стал Гусарова') )='Стал Гусарова')
or

(AUTHOR='Зиновьева' And right (REASON ,len ('Стал Зиновьева') )='Стал Зиновьева')
or
(AUTHOR='Гоева' And right (REASON ,len ('Стал Гоева') )='Стал Гоева')
or
(AUTHOR='Конашкова' And right (REASON ,len ('Стал Конашкова') )='Стал Конашкова')

or
(AUTHOR='Козлова' And right (REASON ,len ('Стал Козлова') )='Стал Козлова')

or
(AUTHOR='Мирошкина' And right (REASON ,len ('Стал Мирошкина') )='Стал Мирошкина')

or
(AUTHOR='Марголина' And right (REASON ,len ('Стал Марголина') )='Стал Марголина')

and ID_ZAK=o.UNZ
order by TIME_EDIT desc
) as TEH_END

,
*/
(
select 
convert (varchar(255),coalesce (MIN(W_DATA),''),105)  +' | '+
convert (varchar(255) ,coalesce (MAX(W_DATA),''),105) +' | '+
cast (cast (SUM(w.QTY) as numeric(10) ) as varchar(255)) 
 from ZAK_OPER o (nolock)
inner join ZAK_WORK w (nolock) on w.ID_ZAK_OPER=o.ID
where ID_ORG=1132582 and UNZ=h.UNZ
) FORM

,

(select 
convert (varchar(255),MIN(W_DATA),105)  +' | '+
convert (varchar(255) ,MAX(W_DATA),105) +' | '+ 
cast ((case when exists(select '1' from ZAK_OPER o11 where o11.UNZ=h.UNZ) then
(SELECT TIR from ZAK_HEAD h11 where h11.UNZ=h.UNZ) end) as varchar (255))

 from ZAK_OPER oo (nolock)
inner join ZAK_WORK w  (nolock) on w.ID_ZAK_OPER=oo.ID
where ID_ORG=1083198 and UNZ=h.UNZ 

and 

(
select  coalesce(VALUE,'') from ZAK_PROPS  (nolock) where OBJECTID=
(select top 1 ID_ZAK_VID from ZAK_STRUCT s  (nolock) where oo.ID_SP=s.ID_SP)
and CODE=510 
)='Текст' )
PECHAT,

(
select 
convert (varchar(255),coalesce (MIN(W_DATA),''),105)  +' | '+
convert (varchar(255) ,coalesce (MAX(W_DATA),''),105) +' | '+
cast (cast(sum(w.QTY)*1000 as numeric(10)) as varchar(255)) 
 from ZAK_OPER o (nolock)
inner join ZAK_WORK w (nolock) on w.ID_ZAK_OPER=o.ID
where ID_OPER in (1096138,102663242) and UNZ=h.UNZ
) FALC
,
(
select 
convert (varchar(255),coalesce (MIN(W_DATA),''),105)  +' | '+
convert (varchar(255) ,coalesce (MAX(W_DATA),''),105) +' | '+
cast (cast(sum(w.QTY)*1000 as numeric(10)) as varchar(255)) 
 from ZAK_OPER o (nolock)
inner join ZAK_WORK w (nolock) on w.ID_ZAK_OPER=o.ID
where ID_OPER in (1106339,102988885,4223890,102655299) and UNZ=h.UNZ
) KRITYE
,
(
select 
convert (varchar(255),coalesce (MIN(W_DATA),''),105)  +' | '+
convert (varchar(255) ,coalesce (MAX(W_DATA),''),105) +' | '+
cast (cast(sum(w.QTY)*1000 as numeric(10)) as varchar(255)) 
 from ZAK_OPER o (nolock)
inner join ZAK_WORK w (nolock) on w.ID_ZAK_OPER=o.ID
where ID_OPER in (1090724,101648110 )and UNZ=h.UNZ
) SHITYE

,
(
select 
convert (varchar(255),coalesce (MIN(W_DATA),''),105)  +' | '+
convert (varchar(255) ,coalesce (MAX(W_DATA),''),105) +' | '+
cast (cast(sum(w.QTY)*1000 as numeric(10)) as varchar(255)) 
 from ZAK_OPER o (nolock)
inner join ZAK_WORK w (nolock) on w.ID_ZAK_OPER=o.ID
where ID_OPER in (1099966,103279609) and UNZ=h.UNZ
) APL
,
(
select 
convert (varchar(255),coalesce (MIN(W_DATA),''),105)  +' | '+
convert (varchar(255) ,coalesce (MAX(W_DATA),''),105) +' | '+
cast (cast(sum(w.QTY)*1000 as numeric(10)) as varchar(255)) 
 from ZAK_OPER o (nolock)
inner join ZAK_WORK w (nolock) on w.ID_ZAK_OPER=o.ID
where ID_OPER=22564504 and UNZ=h.UNZ
) TERMO
,
(
select 
convert (varchar(255),coalesce (MIN(W_DATA),''),105)  +' | '+
convert (varchar(255) ,coalesce (MAX(W_DATA),''),105) +' | '+
cast (cast(sum(w.QTY)*1000 as numeric(10)) as varchar(255)) 
 from ZAK_OPER o (nolock)
inner join ZAK_WORK w (nolock) on w.ID_ZAK_OPER=o.ID
where ID_OPER in (1086605,103127983) and UNZ=h.UNZ
) PACK


,(
select 
convert (varchar(255),coalesce (MIN(W_DATA),''),105)  +' | '+
convert (varchar(255) ,coalesce (MAX(W_DATA),''),105) +' | '+
cast (cast(sum(w.QTY)*1000 as numeric(10)) as varchar(255)) 
 from ZAK_OPER o (nolock)
inner join ZAK_WORK w (nolock) on w.ID_ZAK_OPER=o.ID
where ID_OPER in (2097846)and UNZ=h.UNZ
) SDACHA,

dbo.OTGRUZKA(h.UNZ) as OTGRUZKA

 from ZAK_OPER o
inner join ZAK_HEAD h (nolock) on h.UNZ=o.UNZ
where 


month ((SELECT case when isdate (VALUE)=1 then VALUE else NULL end from ZAK_PROPS p1 (nolock)  where o.ID= p1.OBJECTID and p1.CODE=1035))=@month

and 

year ((SELECT case when isdate (VALUE)=1 then VALUE else NULL end from ZAK_PROPS p1 (nolock) where o.ID= p1.OBJECTID and p1.CODE=1035))=@year
and
o.ID_ORG=88798595 and h.KLIENT=@IZDATEL
) as ggg
end
25 июл 13, 17:41    [14617884]     Ответить | Цитировать Сообщить модератору
 Re: разный вывод результата запроса Management Studio и генераторов отчетов.  [new]
StarikNavy
Member

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

чудес не бывает. если результаты разные, значит и запросы разные
25 июл 13, 17:42    [14617888]     Ответить | Цитировать Сообщить модератору
 Re: разный вывод результата запроса Management Studio и генераторов отчетов.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
35243 NULL NULL NULL NULL NULL NULL
35144 NULL NULL NULL NULL NULL NULL

35243 NULL NULL NULL 5000 NULL NULL
35144 NULL NULL NULL 15000 NULL NULL

Оно? Показывайте, как получаются эти поля в запросе.
25 июл 13, 17:43    [14617895]     Ответить | Цитировать Сообщить модератору
 Re: разный вывод результата запроса Management Studio и генераторов отчетов.  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 1005
StarikNavy
andron81,

чудес не бывает. если результаты разные, значит и запросы разные


хорошо, сейчас попробую подловить профайлером.
25 июл 13, 17:44    [14617909]     Ответить | Цитировать Сообщить модератору
 Re: разный вывод результата запроса Management Studio и генераторов отчетов.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
И сравните у сессий значения SET CONCAT_NULL_YIELDS_NULL. Я, полагаю из студии из и репортинга из под одной и той же учетки идет обращение к серверу?
25 июл 13, 17:50    [14617951]     Ответить | Цитировать Сообщить модератору
 Re: разный вывод результата запроса Management Studio и генераторов отчетов.  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 1005
pkarklin
35243 NULL NULL NULL NULL NULL NULL
35144 NULL NULL NULL NULL NULL NULL

35243 NULL NULL NULL 5000 NULL NULL
35144 NULL NULL NULL 15000 NULL NULL

Оно? Показывайте, как получаются эти поля в запросе.


да, оно самое

сначала собирается в подзапросе ggg поле PECHAT
(select 
convert (varchar(255),MIN(W_DATA),105)  +' | '+
convert (varchar(255) ,MAX(W_DATA),105) +' | '+ 
cast ((case when exists(select '1' from ZAK_OPER o11 where o11.UNZ=h.UNZ) then
(SELECT TIR from ZAK_HEAD h11 where h11.UNZ=h.UNZ) end) as varchar (255))

 from ZAK_OPER oo (nolock)
inner join ZAK_WORK w  (nolock) on w.ID_ZAK_OPER=oo.ID
where ID_ORG=1083198 and UNZ=h.UNZ 

and 

(
select  coalesce(VALUE,'') from ZAK_PROPS  (nolock) where OBJECTID=
(select top 1 ID_ZAK_VID from ZAK_STRUCT s  (nolock) where oo.ID_SP=s.ID_SP)
and CODE=510 
)='Текст' )
PECHAT


затем мудрёж с парсингом строк в результируещем запросе :

cast (replace (replace (substring (PECHAT,1,11),'|',''),' ','') as varchar(255)) PECHAT_D1,

поле PRINT_D1 и тупит (в табличках использовал PECHAT_D1 вместо PRINT_D1 на самом деле PRINT_D1 !)
25 июл 13, 17:52    [14617975]     Ответить | Цитировать Сообщить модератору
 Re: разный вывод результата запроса Management Studio и генераторов отчетов.  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 1005
pkarklin
И сравните у сессий значения SET CONCAT_NULL_YIELDS_NULL. Я, полагаю из студии из и репортинга из под одной и той же учетки идет обращение к серверу?


из под одной
25 июл 13, 17:53    [14617977]     Ответить | Цитировать Сообщить модератору
 Re: разный вывод результата запроса Management Studio и генераторов отчетов.  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 1005
StarikNavy
andron81,

чудес не бывает. если результаты разные, значит и запросы разные



вот вызовы при помощи копипасты сюда копировал :
exec SPK_PLAN_ZAYAWKA_NEW 0, '20130720', '', 0,'Просвещение'


exec SPK_PLAN_ZAYAWKA_NEW 0,
        '20130720',
        '',
        0,'Просвещение'
25 июл 13, 17:56    [14617992]     Ответить | Цитировать Сообщить модератору
 Re: разный вывод результата запроса Management Studio и генераторов отчетов.  [new]
предположение
Guest
andron81,

(select top 1 ID_ZAK_VID from ZAK_STRUCT s  (nolock) where oo.ID_SP=s.ID_SP)


тут top без order by,
если на одинаковые ID_SP приходится кучка разных ID_ZAK_VID,
то можно получать разные результаты
25 июл 13, 18:01    [14618024]     Ответить | Цитировать Сообщить модератору
 Re: разный вывод результата запроса Management Studio и генераторов отчетов.  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 1005
предположение
andron81,

(select top 1 ID_ZAK_VID from ZAK_STRUCT s  (nolock) where oo.ID_SP=s.ID_SP)


тут top без order by,
если на одинаковые ID_SP приходится кучка разных ID_ZAK_VID,
то можно получать разные результаты


вы правы , но ситуацию не изменило
25 июл 13, 18:06    [14618046]     Ответить | Цитировать Сообщить модератору
 Re: разный вывод результата запроса Management Studio и генераторов отчетов.  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 1005
спасибо всем . всё, разобрался !!!
25 июл 13, 18:13    [14618070]     Ответить | Цитировать Сообщить модератору
 Re: разный вывод результата запроса Management Studio и генераторов отчетов.  [new]
FOKS
Member

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

Так что было то? Всё равно что прочитал роман, и не узнал чем всё закончилось.
16 авг 13, 16:57    [14719812]     Ответить | Цитировать Сообщить модератору
 Re: разный вывод результата запроса Management Studio и генераторов отчетов.  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 1005
FOKS
andron81,

Так что было то? Всё равно что прочитал роман, и не узнал чем всё закончилось.


pkarklin был прав.

SET CONCAT_NULL_YIELDS_NULL

разными средами по разному обрабатывались NULL + str
16 авг 13, 17:47    [14720117]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить