Hello I have a question on this query, my problem is that in this query I have to print the total of each chapter, but I have to do it only when the description changes, I try to explain with a diagram,how do I add a field with the addition of 1,2,3 only at the end of each description:
你好我对这个查询有疑问,我的问题是在这个查询中我要打印每章的总数,但是我只有在描述发生变化时才这样做,我试着用图解释一下,我该如何添加仅在每个描述的末尾添加1,2,3的字段:
Descrizione Totale TotaleCapitolo DescrizioneDis
descrizione di prova ------1---------- ---------------
-------2--------- ---------------
SUM(1,2,3) -------3--------- ---------------
descrizione di prova 2 ---------------- -----
QUERY:
查询:
SELECT
CASE WHEN ROW_NUMBER() OVER(PARTITION BY Capitolo.Descrizione order by Capitolo.Descrizione) = 1 THEN Capitolo.Descrizione ELSE '' END AS 'Descrizione',
SottoCapitolo.CostoUnitario as TotaleCapitolo,SottoCapitolo.Descrizione as DescrizioneDis, SottoCapitolo.Immagine, SottoCapitolo.DescrizioneEstesa, SottoCapitolo.Quantita, ROUND(((SottoCapitolo.CostoUnitario) + (((SottoCapitolo.CostoUnitario) / 100) * PercentualeMargine) + (((SottoCapitolo.CostoUnitario) / 100) * PercentualeUtile) + (((SottoCapitolo.CostoUnitario) / 100) * PercentualeSpeseGenerali)), 0) as CostoUnitario FROM Preventivo inner join Capitolo on Preventivo.IdPreventivo = Capitolo.IdPreventivo inner join SottoCapitolo on SottoCapitolo.IdCapitolo = Capitolo.IdCapitolo where Preventivo.IdPreventivo='7' order by Capitolo.Descrizione
QUERY RUN:
QUERY RUN:
After query
查询后
1 个解决方案
#1
1
I hope this can help you further
我希望这可以进一步帮助你
Update
更新
DescrizioneDis is on the third column, Immagine on the fourth.
DescrizioneDis排在第三列,Immagine排在第四列。
DECLARE @T AS TABLE (Descrizione VARCHAR(255), Totale DECIMAL(18,6), DescrizioneDis VARCHAR(255), Immagine VARCHAR(255))
INSERT INTO @T
VALUES
('descrizione di prova', 102.40, 'Tastiera ...', 'I:\So...'),
('descrizione di prova', 176.076, 'Echo 927 ...', 'I:\So...'),
('descrizione di prova', 32.03, 'CASS IP55 ...', '0'),
('descrizione di prova 2', 330.39, 'Accoppiatore ...', 'I:\So...')
SELECT CASE WHEN ROW_NUMBER() OVER(PARTITION BY a.Descrizione order by a.Descrizione) = 1 THEN a.Descrizione ELSE '' END AS Descrizione,
a.Totale, a.DescrizioneDis
FROM (
SELECT 1 AS d, ROW_NUMBER() OVER(PARTITION BY Descrizione order by Descrizione) AS r, Descrizione, Totale, DescrizioneDis, Immagine
FROM @T
UNION ALL
SELECT 2, 0, Descrizione, SUM(Totale), '', ''
FROM @T
GROUP BY Descrizione
) AS a
ORDER BY a.Descrizione, a.d
Result
结果
+----------------------+-----------+---------------+---------+
|Descrizione |Totale |DescrizioneDis |Immagine |
+----------------------+-----------+---------------+---------+
|descrizione di prova |102.400000 |Tastiera ... |I:\So... |
| |176.076000 |Echo 927 ... |I:\So... |
| |32.030000 |CASS IP55 ... |0 |
| |310.506000 | | |
|descrizione di prova 2|330.390000 |Accoppiatore ..|I:\So... |
| |330.390000 | | |
+----------------------+-----------+---------------+---------+
Please specify further if this is not the desired output.
如果这不是所需的输出,请进一步说明。
#1
1
I hope this can help you further
我希望这可以进一步帮助你
Update
更新
DescrizioneDis is on the third column, Immagine on the fourth.
DescrizioneDis排在第三列,Immagine排在第四列。
DECLARE @T AS TABLE (Descrizione VARCHAR(255), Totale DECIMAL(18,6), DescrizioneDis VARCHAR(255), Immagine VARCHAR(255))
INSERT INTO @T
VALUES
('descrizione di prova', 102.40, 'Tastiera ...', 'I:\So...'),
('descrizione di prova', 176.076, 'Echo 927 ...', 'I:\So...'),
('descrizione di prova', 32.03, 'CASS IP55 ...', '0'),
('descrizione di prova 2', 330.39, 'Accoppiatore ...', 'I:\So...')
SELECT CASE WHEN ROW_NUMBER() OVER(PARTITION BY a.Descrizione order by a.Descrizione) = 1 THEN a.Descrizione ELSE '' END AS Descrizione,
a.Totale, a.DescrizioneDis
FROM (
SELECT 1 AS d, ROW_NUMBER() OVER(PARTITION BY Descrizione order by Descrizione) AS r, Descrizione, Totale, DescrizioneDis, Immagine
FROM @T
UNION ALL
SELECT 2, 0, Descrizione, SUM(Totale), '', ''
FROM @T
GROUP BY Descrizione
) AS a
ORDER BY a.Descrizione, a.d
Result
结果
+----------------------+-----------+---------------+---------+
|Descrizione |Totale |DescrizioneDis |Immagine |
+----------------------+-----------+---------------+---------+
|descrizione di prova |102.400000 |Tastiera ... |I:\So... |
| |176.076000 |Echo 927 ... |I:\So... |
| |32.030000 |CASS IP55 ... |0 |
| |310.506000 | | |
|descrizione di prova 2|330.390000 |Accoppiatore ..|I:\So... |
| |330.390000 | | |
+----------------------+-----------+---------------+---------+
Please specify further if this is not the desired output.
如果这不是所需的输出,请进一步说明。