假设我们有一个可以用下面的代码构建的表。按照特定条件从SQL Server中检索数据
**SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[ACBilling](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Invoice] [int] NULL,
[Product] [varchar](500) NULL,
[Rate] [money] NULL,
[Quantity] [int] NULL,
[Amount] AS ([Rate]*[Quantity]),
[CGSTRate] [money] NULL,
[CGSTAmount] [money] NULL,
[SGSTRate] [money] NULL,
[SGSTAmount] [money] NULL,
[IGSTRate] [money] NULL,
[IGSTAmount] [money] NULL,
[TotalTaxAmount] AS (([CGSTAmount]+[SGSTAmount])+[IGSTAmount])
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO**
我们已经进入样本数据到表,现在我的表看起来像 -
请考虑以下几列CGSTRate
,SGSTRate
和IGSTRate
,这三样税(百分比可能将会被强加的金额栏和相关的税额分别保存在CGSTAmount
,SGSTAmount
和IGSTAmount
列中。现在
,请考虑发票栏,你会看到,发票#1包含3个记录,发票#2包含3条记录和发票#3包含了3条不同CGSTRate
,SGSTRate
和IGSTRates
和相关CGSTAmount,SGSTAmount和IGSTAmount
。
我要执行这样一个查询,SQL将会排序由不同的发票号码,金额列的SUM和在CGSTRate
,SGSTRate
和IGSTRate
各税比较的记录,它应该一起加单独的列总和CGSTAmount
,SGSTAmount
和IGSTAmount
,以便我应该得到以下结果。
有人能帮助我吗?
请查看此链接(https://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)以了解更多关于如何改进问题 – TheGameiswar
您可以使用条件聚合或透视来做到这一点。有几十次,如果不是数百次,这个问题已经在互联网上被提出,并且已经有数千次。 –