Я делаю запрос, который показывает мне группировку данных, и пока все в порядке, но я также хотел бы добавить столбец, который показывает общую регистрацию по агентству.
Я прилагаю сценарий моего запроса и результаты:
SELECT * FROM
(
SELECT
r.tb_idRegion AS cantidad,
r.abreviatura AS region,
o.abreviatura AS organismo
FROM tb_construccion c
INNER JOIN tb_organismo o ON o.tb_idOrganismo = c.tb_idOrganismo
INNER JOIN tb_propiedad p ON p.tb_idPropiedad = c.tb_idPropiedad
INNER JOIN tb_region r ON r.tb_idRegion = p.tb_idRegion
WHERE c.tb_idEstadoConstruccion = 1
) t
PIVOT(
COUNT(cantidad)
FOR region IN (
[XV],
[I],
[II],
[III],
[IV],
[V],
[RM],
[VI],
[VII],
[XVI],
[VIII],
[IX],
[XIV],
[X],
[XI],
[XII])
) AS tb_pivot
Результат:
Назад к Моя проблема, я хотел бы добавить ИТОГО столбец, который будет рассчитывать количество на организм.
Любая помощь приветствуется :)
Приветствую
Alguien me puede ayudar, quiero hacer lo mismo, agregar una columna para hacer la sumatoria, este es mi script
create view Pruebaa
as
select Caja.CodigoEmpacador,caja.NumPresentacion,Empacador.Nombre,Empacador.ApellidoP,Empacador.ApellidoM,
Fecha,count(Cantidad) as CajaXPresentacion
from Empacador inner join
(Caja inner join Presentacion on Caja.NumPresentacion =Presentacion.NumPresentacion )on
Empacador.CodigoEmpacador =Caja.CodigoEmpacador group by Caja.CodigoEmpacador,caja.NumPresentacion,
Empacador.Nombre,Empacador.ApellidoP,Empacador.ApellidoM,Fecha,Cantidad
go
DECLARE @query VARCHAR(4000)
DECLARE @NumPres VARCHAR(2000)
SELECT @NumPres =
STUFF((SELECT DISTINCT '],['+LTRIM([NumPresentacion])FROM [dbo].[Caja]
ORDER BY '],['+LTRIM([NumPresentacion])desc FOR XML PATH('') ),1,2,'') + ']'
SET @query=
'SELECT * FROM
(select*from Pruebaa) sourceData
PIVOT(SUM(CajaXPresentacion)FOR [NumPresentacion] IN ('+ @NumPres +'))as Total
order by Fecha desc,
CodigoEmpacador desc '
EXECUTE(@query)
Восток - результат
Я хочу сделать вертикальный sumatoria и горизонтально презентаций, которые находят выписанными 6,4,11.5,11.3,11,10, но могут быть выписанными даже mГЎs. Я хочу, чтобы они сложили Вашу соответствующую стоимость горизонтально (1+1+null+null+2+2=6, 2+1+1+1+3+1=9) и вертикально (1+2=3,1+1=2, null+1=1, null+1=1, 2+3=5, 2+1=3), надеюсь и было возможно делать, а только, с которым смогли вертикально
Чтобы добавлять полную колонну, sГіlo ты должен добавлять сумму оставшейся части колонн.
SELECT organismo,
[XV],
[I],
[II],
[III],
[IV],
[V],
[RM],
[VI],
[VII],
[XVI],
[VIII],
[IX],
[XIV],
[X],
[XI],
[XII],
total = [XV] + [I] + [II] + [III] + [IV] + [V] + [RM] + [VI]
+ [VII] + [XVI] + [VIII] + [IX] + [XIV] + [X] + [XI] + [XII]
FROM
(
SELECT
r.tb_idRegion AS cantidad,
r.abreviatura AS region,
o.abreviatura AS organismo
FROM tb_construccion c
INNER JOIN tb_organismo o ON o.tb_idOrganismo = c.tb_idOrganismo
INNER JOIN tb_propiedad p ON p.tb_idPropiedad = c.tb_idPropiedad
INNER JOIN tb_region r ON r.tb_idRegion = p.tb_idRegion
WHERE c.tb_idEstadoConstruccion = 1
) t
PIVOT(
COUNT(cantidad)
FOR region IN (
[XV],
[I],
[II],
[III],
[IV],
[V],
[RM],
[VI],
[VII],
[XVI],
[VIII],
[IX],
[XIV],
[X],
[XI],
[XII])
) AS tb_pivot;
Однако, всегда мне казался mГЎs ясно (и versГЎtil) она opciГіn, что у нас есть с до того, как вмешивался действующий ЦЕНТР, который это условные атташе.
SELECT
o.abreviatura AS organismo,
COUNT( CASE WHEN r.abreviatura = 'XV ' THEN r.tb_idRegion END) AS [XV],
COUNT( CASE WHEN r.abreviatura = 'I ' THEN r.tb_idRegion END) AS [I],
COUNT( CASE WHEN r.abreviatura = 'II ' THEN r.tb_idRegion END) AS [II],
COUNT( CASE WHEN r.abreviatura = 'III ' THEN r.tb_idRegion END) AS [III],
COUNT( CASE WHEN r.abreviatura = 'IV ' THEN r.tb_idRegion END) AS [IV],
COUNT( CASE WHEN r.abreviatura = 'V ' THEN r.tb_idRegion END) AS [V],
COUNT( CASE WHEN r.abreviatura = 'RM ' THEN r.tb_idRegion END) AS [RM],
COUNT( CASE WHEN r.abreviatura = 'VI ' THEN r.tb_idRegion END) AS [VI],
COUNT( CASE WHEN r.abreviatura = 'VII ' THEN r.tb_idRegion END) AS [VII],
COUNT( CASE WHEN r.abreviatura = 'XVI ' THEN r.tb_idRegion END) AS [XVI],
COUNT( CASE WHEN r.abreviatura = 'VIII' THEN r.tb_idRegion END) AS [VIII],
COUNT( CASE WHEN r.abreviatura = 'IX ' THEN r.tb_idRegion END) AS [IX],
COUNT( CASE WHEN r.abreviatura = 'XIV ' THEN r.tb_idRegion END) AS [XIV],
COUNT( CASE WHEN r.abreviatura = 'X ' THEN r.tb_idRegion END) AS [X],
COUNT( CASE WHEN r.abreviatura = 'XI ' THEN r.tb_idRegion END) AS [XI],
COUNT( CASE WHEN r.abreviatura = 'XII ' THEN r.tb_idRegion END) AS [XII],
COUNT(*) AS total
FROM tb_construccion c
INNER JOIN tb_organismo o ON o.tb_idOrganismo = c.tb_idOrganismo
INNER JOIN tb_propiedad p ON p.tb_idPropiedad = c.tb_idPropiedad
INNER JOIN tb_region r ON r.tb_idRegion = p.tb_idRegion
WHERE c.tb_idEstadoConstruccion = 1
GROUP BY o.abreviatura;