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

Откуда:
Сообщений: 265
Подскажите пожалуйста, как мне сделать так что бы выводились записи даже если они не заполнены:

Этот запрос выдает все верно, но я хочу что бы к нему + всегда прикреплялась строка с "Подрядчиками1"
SELECT H.Estimate, C.ID AS [CONTRACT], C.FirmName + ' ' + L.LawForm AS NAME, sum(S.Summa) AS Summa, S.Author, S.Status
FROM ContractFull C 
INNER JOIN _ApplicHeads A ON C.ID = A.Acceptor
INNER JOIN _EstimateHeads H ON H.Estimate = A.EstimateID 
INNER JOIN ContractFullLawForm L ON C.lawForm = L.LawID
LEFT JOIN  dbo.ContractSumTable S ON S.ContractID = C.ID AND S.EstimateID = H.Estimate AND S.Status > 0
WHERE H.Estimate = @EstimateID AND C.[Status] > 0 AND A.[Status] > 0 AND H.[Status] > 0
GROUP BY H.Estimate, C.ID, C.FirmName + ' ' + L.LawForm, S.Author, S.Status


DECLARE @EstimateID INT

SET @EstimateID = 17853000 --18705000

SELECT SUM(S.Summa) AS Summa, S.Author, S.[Status]
INTO #Sum
FROM dbo.ContractSumTable S
WHERE S.EstimateID = @EstimateID AND S.ContractID = -1
GROUP BY S.Author, S.[Status]

SELECT H.Estimate, C.ID AS [CONTRACT], C.FirmName + ' ' + L.LawForm AS NAME, sum(S.Summa) AS Summa, S.Author, S.Status
FROM ContractFull C 
INNER JOIN _ApplicHeads A ON C.ID = A.Acceptor
INNER JOIN _EstimateHeads H ON H.Estimate = A.EstimateID 
INNER JOIN ContractFullLawForm L ON C.lawForm = L.LawID
LEFT JOIN  dbo.ContractSumTable S ON S.ContractID = C.ID AND S.EstimateID = H.Estimate AND S.Status > 0
WHERE H.Estimate = @EstimateID AND C.[Status] > 0 AND A.[Status] > 0 AND H.[Status] > 0
GROUP BY H.Estimate, C.ID, C.FirmName + ' ' + L.LawForm, S.Author, S.Status

UNION ALL

SELECT @EstimateID, -1 as ContractIВ, 'Промперсонал1' as NAME, SUM(S.Summa) AS Summa, S.Author, S.Status
FROM #Sum S 
GROUP BY S.Author, S.Status


DROP TABLE #Sum
18 окт 16, 13:44    [19794597]     Ответить | Цитировать Сообщить модератору
 Re: Присоединение Left Join  [new]
Pabl0
Member

Откуда:
Сообщений: 265
Сразу скажу #Sum пустая
18 окт 16, 13:46    [19794613]     Ответить | Цитировать Сообщить модератору
 Re: Присоединение Left Join  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Pabl0,

автор
IF OBJECT_ID('tempdb..#Sum') IS NOT NULL
DROP TABLE #Sum

CREATE TABLE #Sum
(
s MONEY
)

SELECT
*
FROM
(
SELECT 'aaaa' as val
) c
OUTER APPLY #SUM
18 окт 16, 14:07    [19794718]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить