Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Set Retail / Centrum / Oil

"Значение NULL исключено в агрегатных или других операциях SET" в логах Centrum

21.09.2020 5:47


26.09.2017 06:53
talkon
 
Здравствуйте! В Centrum_Error.log есть несколько ошибок:

Код:
Информационное сообщение базы данных: 
SELECT g.*, d.* FROM #Gang t JOIN V_OperGang g ON g.Id = t.Id JOIN (SELECT g.Id, 
ISNULL(SUM(CASE WHEN p.id = 1 THEN d.OperDaySale ELSE 0 END), 0) AS OperDaySale_0_1, 
ISNULL(SUM(CASE WHEN p.id = 1 THEN d.OperDayRet ELSE 0 END), 0) AS OperDayRet_0_1, 
ISNULL(SUM(CASE WHEN p.id = 1 THEN d.OperDaySale - d.OperDayRet ELSE 0 END), 0) AS Total_0_1, 
ISNULL(SUM(CASE WHEN p.id = 1 THEN d.ChequeCountSale ELSE 0 END), 0) AS ChequeCountSale_0_1, 
ISNULL(SUM(CASE WHEN p.id = 1 THEN d.ChequeCountRet ELSE 0 END), 0) AS ChequeCountRet_0_1, 
ISNULL(SUM(CASE WHEN p.id = 1 THEN d.ChequeCountSale + d.ChequeCountRet ELSE 0 END), 0) AS ChequeCount_0_1, 
ISNULL(SUM(CASE WHEN p.id = 2 THEN d.OperDaySale ELSE 0 END), 0) AS OperDaySale_1_2, 
ISNULL(SUM(CASE WHEN p.id = 2 THEN d.OperDayRet ELSE 0 END), 0) AS OperDayRet_1_2, 
ISNULL(SUM(CASE WHEN p.id = 2 THEN d.OperDaySale - d.OperDayRet ELSE 0 END), 0) AS Total_1_2, 
ISNULL(SUM(CASE WHEN p.id = 2 THEN d.ChequeCountSale ELSE 0 END), 0) AS ChequeCountSale_1_2, 
ISNULL(SUM(CASE WHEN p.id = 2 THEN d.ChequeCountRet ELSE 0 END), 0) AS ChequeCountRet_1_2, 
ISNULL(SUM(CASE WHEN p.id = 2 THEN d.ChequeCountSale + d.ChequeCountRet ELSE 0 END), 0) AS ChequeCount_1_2, 
ISNULL(SUM(CASE WHEN p.id = 5 THEN d.OperDaySale ELSE 0 END), 0) AS OperDaySale_98_5, 
ISNULL(SUM(CASE WHEN p.id = 5 THEN d.OperDayRet ELSE 0 END), 0) AS OperDayRet_98_5, 
ISNULL(SUM(CASE WHEN p.id = 5 THEN d.OperDaySale - d.OperDayRet ELSE 0 END), 0) AS Total_98_5, 
ISNULL(SUM(CASE WHEN p.id = 5 THEN d.ChequeCountSale ELSE 0 END), 0) AS ChequeCountSale_98_5, 
ISNULL(SUM(CASE WHEN p.id = 5 THEN d.ChequeCountRet ELSE 0 END), 0) AS ChequeCountRet_98_5, 
ISNULL(SUM(CASE WHEN p.id = 5 THEN d.ChequeCountSale + d.ChequeCountRet ELSE 0 END), 0) AS ChequeCount_98_5, 
ISNULL(SUM(CASE WHEN p.id = 6 THEN d.OperDaySale ELSE 0 END), 0) AS OperDaySale_79_6, 
ISNULL(SUM(CASE WHEN p.id = 6 THEN d.OperDayRet ELSE 0 END), 0) AS OperDayRet_79_6, 
ISNULL(SUM(CASE WHEN p.id = 6 THEN d.OperDaySale - d.OperDayRet ELSE 0 END), 0) AS Total_79_6, 
ISNULL(SUM(CASE WHEN p.id = 6 THEN d.ChequeCountSale ELSE 0 END), 0) AS ChequeCountSale_79_6, 
ISNULL(SUM(CASE WHEN p.id = 6 THEN d.ChequeCountRet ELSE 0 END), 0) AS ChequeCountRet_79_6, 
ISNULL(SUM(CASE WHEN p.id = 6 THEN d.ChequeCountSale + d.ChequeCountRet ELSE 0 END), 0) AS ChequeCount_79_6
FROM V_OperGang g JOIN PayDocType p (NOLOCK) ON 1 = 1 LEFT JOIN OperGangDetail d (NOLOCK) ON d.GangId = g.Id AND 
        (((d.PayType = p.KindPay AND d.PayType <> 100) OR (p.id = 100 AND d.PayType = 100))
        OR
        ((d.PayType = p.KindPay AND d.PayType <> 7) OR (p.id = 7 AND d.PayType = 7))) GROUP BY g.Id) d ON d.Id = g.Id
	Form: OperDayCurrentForm
	DataSet: qrySmena
	FinalSQL: exec OperGang_app :OperDay, :OperDayMode, :OperDayEnd
	Parameters: 
		OperDay: 20170926
		OperDayMode: 1
		OperDayEnd:
Что за таблица V_OperGang, для чего она нужна?

Код:
Информационное сообщение базы данных: 
Внимание! Значение NULL исключено в агрегатных или других операциях SET.
	Form: OperDayCurrentForm
	DataSet: qrySmena
	FinalSQL: exec OperGang_app :OperDay, :OperDayMode, :OperDayEnd
	Parameters: 
		OperDay: 20170926
		OperDayMode: 1
		OperDayEnd:
Код:
Информационное сообщение базы данных: 
Внимание! Значение NULL исключено в агрегатных или других операциях SET.
	Form: OperDayCurrentForm
	DataSet: qryMain
	FinalSQL: select 
  SUM(OperDaySaleCash) as SumOperDaySaleCash,
  SUM(OperDaySaleCashless) as SumOperDaySaleCashless,
  SUM(OperDaySaleNotFiscal) as SumOperDaySaleNotFiscal,
  SUM(OperDaySaleVoucher) as SumOperDaySaleVoucher,
  SUM(OperDaySaleDefDisc) as SumOperDaySaleDefDisc,
  SUM(OperDaySaleCredit) as SumOperDaySaleCredit,
  SUM(OperDayRetCash) as SumOperDayRetCash,
  SUM(OperDayRetCashless) as SumOperDayRetCashless,
  SUM(OperDayRetNotFiscal) as SumOperDayRetNotFiscal,
  SUM(OperDayRetVoucher) as SumOperDayRetVoucher,
  SUM(OperDayRetDefDisc) as SumOperDayRetDefDisc,
  SUM(OperDayRetCredit) as SumOperDayRetCredit,
  SUM(OperDayTotal) as SumOperDayTotal,
  SUM(ChequeCountSale) as ChequeCountSale,
  SUM(ChequeCountRet) as ChequeCountRet,
  SUM(GoodsCountSale) as GoodsCountSale,
  SUM(GoodsCountRet) as GoodsCountRet,
  MAX(MaxBuy) as MaxBuy,
  AVG(AverageBuy) as AverageBuy,
  SUM(BankAuthorization) as BankAuthorization
from v_OperDay
WHERE OperDay = 20170926
Что за таблица v_OperDay, и для чего она?

Как пофиксить данные ошибки? и на сколько они критичны?
26.09.2017 11:29
grafstroganov
 
V_OperGang - это не таблица, это вьюха. И она похоже не актульна, - надо скрипт обновления и обновить её
28.09.2017 11:22
TANGOR
 
Да это вьюха. Она группирует данные по сменам чтобы суммы за опердень показать. А у вас походу какойто смены нету....или данные кривые.
30.09.2017 07:14
talkon
 
а можно как то обновить только эту вьюху?

Цитата:
А у вас походу какойто смены нету....или данные кривые.
смены нет в этой вьюхе получается? а если данные кривые их в этой вьюхе смотреть нужно или они туда не доходят если они кривые?

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.