使用SQL Server,我有一个表,如下面的示例表所示.我需要为"BookOrder,StationaryOrder和Printing Order"列提供所有唯一值的总和.
样本表:
KeyIDCustomer BooksOrder StationaryOrder PrintingOrder
29945843 1070756 1891514 198876
29945843 1070756 1893827 198876
29945843 1070758 1891514 198876
29945843 1070758 1893827 198876
Run Code Online (Sandbox Code Playgroud)
我正在使用以下编码来实现这一目标.
Select DISTINCT KeyIDCustomerID,
Sum(Case when BooksOrder is not null then 1 else 0 End) TotalBookOrders,
Sum(Case when StationaryOrder is not null then 1 else 0 End) TotalStationaryOrder,
Sum(Case when PrintingOrder is not null then 1 else 0 End)TotalPrintingOrder
Run Code Online (Sandbox Code Playgroud)
通过这种编码,我得到的结果如下
KeyIDCustomerID TotalBookOrders TotalStationaryOrder TotalPrintingOrder
29945843 4 4 4
Run Code Online (Sandbox Code Playgroud)
我希望结果是这样的
KeyIDCustomerID TotalBookOrders TotalStationaryOrder TotalPrintingOrder
29945843 2 2 …
Run Code Online (Sandbox Code Playgroud) sql sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012
我在SQL表中有两列如下.我需要比较这两列不匹配,但由于额外的小数,我得到错误的结果.当我尝试转换第一列时,它会给出错误
"将数据类型varchar转换为数字时出错."
如何解决这个问题?第一列的长度各不相同.
Column01(varchar) Column02(Decimal)
0.01 0.010000
0.255 0.255000
Run Code Online (Sandbox Code Playgroud) 我有第01列中的值,我希望将其转换为第02列中的值,从结尾删除所有零.有没有办法在SQL服务器中执行此操作?
Column 01 Column 02
20100000 201
29050000 2905
Run Code Online (Sandbox Code Playgroud)
谢谢你的期待.
sql sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012