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

Откуда:
Сообщений: 26
Есть запрос. Писан не мной, вот код:
USE BlaBlaBla 
GO
SELECT 
	Name = T.Name, 
	SName = C.ShortName, 
	CodTMC = T.Cod, 
	DNacl = P.DNacl, 
	NNacl = P.NNacl, 
	Quantity = M.Debet, 
	PriceSale = L.PriceSale, 
	ScanCod = T.ScanCod, 
	InScanCod = L.Currency, 
	Cod = L.cod, 
	CodParrent = 0, 
	PriceDeliv = L.PriceDeliver, 
	Serial = L.Serial, 
	DateValid = L.DateValid,
	NNacl='''',
	DNacl=0,
	ShortName='''',
	ABCGroup=0, 
	ABCGroup=0, 
	ABCXYZGroup=0, 
	ABCXYZGroup=0,
	F.NameFactory,
	L.PriceMake,
	PriceReestr='''',
	DateReestr=0 
FROM Move as M  
	INNER JOIN TMC T ON T.Cod = M.CodTMC 
	INNER JOIN ListDoc L ON L.Cod = M.Cod 
	INNER JOIN PDoc P ON P.Cod = M.CodPDoc 
	LEFT OUTER JOIN Client C ON C.Cod = P.Client 
	LEFT OUTER Join Factory F ON F.Cod = T.CodFactory 
WHERE M.DebKred = 1 and 
	P.DPri <= 78197 AND
	L.IsCompleted =0 and 
	(M.CodDivision = 4) 
Group By L.cod,T.Name,C.ShortName,T.Cod,P.NNacl,P.DNacl, L.PriceSale,T.ScanCod,L.Currency,M.Debet,L.PriceDeliver,L.Serial,L.DateValid,F.NameFactory,L.PriceMake
Union All 
SELECT  Name='''',
		SName='''',
		CodTMC=0, 
		DNacl=0, 
		NNacl='''', 
		Quantity = SUM(M.Kredit),
		PriceSale=0,
		ScanCod='''',
		InScanCod=0, 
		Cod=0, 
		CodParrent = L.CodParent, 
		PriceDeliv=0,
		Serial='''',
		DateValid=0,
		NNacl='''',
		DNacl=0,
		ShortName='''',
		ABCGroup=0, 
		ABCGroup=0, 
		ABCXYZGroup=0, 
		ABCXYZGroup=0,
		F.NameFactory,
		L.PriceMake,
		PriceReestr='''',
		DateReestr=0 
FROM Move as M 
	INNER JOIN TMC T ON T.Cod = M.CodTMC 
	INNER JOIN ListDoc L ON L.Cod = M.Cod 
	INNER JOIN PDoc P ON P.Cod = M.CodPDoc 
	LEFT OUTER JOIN Client C ON C.Cod = P.Client 
	LEFT OUTER Join Factory F ON F.Cod = T.CodFactory 
WHERE M.DebKred = 2 and 
	P.DPri <= 78197 AND 
	1=1 and 
	(M.CodDivision = 4) 
Group By L.CodParent ,F.NameFactory,L.PriceMake

первая часть собирает приход, вторая часть расход. Но чёт выглядит как то не кашерно. Как сделать чтобы приход и расход были в одной строке. А то после этих телодвижений всё полученное обрабатывается в цикле: Берётся Cod = L.cod из прихода делается выборка расхода и вычисления. Чёт ни как догнать не могу.
4 авг 15, 08:48    [17971964]     Ответить | Цитировать Сообщить модератору
 Re: Модификация SQL запроса  [new]
petvv
Member

Откуда:
Сообщений: 26
Да забыл Cod = L.cod == CodParrent = L.CodParent
4 авг 15, 08:51    [17971969]     Ответить | Цитировать Сообщить модератору
 Re: Модификация SQL запроса  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2385
Блог
WHERE (M.DebKred = 2 or L.IsCompleted =0) and 
	P.DPri <= 78197 AND 
	(M.CodDivision = 4) 
Дальше сам
4 авг 15, 09:05    [17972005]     Ответить | Цитировать Сообщить модератору
 Re: Модификация SQL запроса  [new]
petvv
Member

Откуда:
Сообщений: 26
Нет, а при чём здесь
WHERE (M.DebKred = 2 or L.IsCompleted =0) and 
	P.DPri <= 78197 AND 
	(M.CodDivision = 4) 


Выхлом из запроса получается таким: Один приход ко множественному расходу. Хотелось бы собрать в строке прихода отдельное поле с расходом.
4 авг 15, 09:15    [17972044]     Ответить | Цитировать Сообщить модератору
 Re: Модификация SQL запроса  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2385
Блог
petvv,

Ну так и собери!
4 авг 15, 09:16    [17972046]     Ответить | Цитировать Сообщить модератору
 Re: Модификация SQL запроса  [new]
petvv
Member

Откуда:
Сообщений: 26
ПСБ за оперативный ответ )))
4 авг 15, 09:22    [17972063]     Ответить | Цитировать Сообщить модератору
 Re: Модификация SQL запроса  [new]
o-o
Guest
Там же разные group by.
Собрать выхлоп первой части в #t1, второй в #t2 и потом соединить их по чему надо, lcod?
4 авг 15, 09:33    [17972118]     Ответить | Цитировать Сообщить модератору
 Re: Модификация SQL запроса  [new]
StarikNavy
Member

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

 select ..., sum(приход) as приход, sum(расход) as расход
from(

select ...
union all
select ...

) as
group by ...
4 авг 15, 10:23    [17972355]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить