Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
存储大于整数范围的值。您应该使用bigint数据类型我甚至不打算开始整理upI通过在线格式化程序丢弃您的SQL。但是仍然可以手动整理。为什么没有内置格式化程序选项?如果您正在侦听,Microsoft会显示错误消息“Msg 8115,16级,状态8,第1行算_Sql_Sql Server 2008 - Fatal编程技术网

存储大于整数范围的值。您应该使用bigint数据类型我甚至不打算开始整理upI通过在线格式化程序丢弃您的SQL。但是仍然可以手动整理。为什么没有内置格式化程序选项?如果您正在侦听,Microsoft会显示错误消息“Msg 8115,16级,状态8,第1行算

存储大于整数范围的值。您应该使用bigint数据类型我甚至不打算开始整理upI通过在线格式化程序丢弃您的SQL。但是仍然可以手动整理。为什么没有内置格式化程序选项?如果您正在侦听,Microsoft会显示错误消息“Msg 8115,16级,状态8,第1行算,sql,sql-server-2008,Sql,Sql Server 2008,存储大于整数范围的值。您应该使用bigint数据类型我甚至不打算开始整理upI通过在线格式化程序丢弃您的SQL。但是仍然可以手动整理。为什么没有内置格式化程序选项?如果您正在侦听,Microsoft会显示错误消息“Msg 8115,16级,状态8,第1行算术溢出错误将数字转换为数据类型数字”。可以通过指示无法转换的原始值来改进。当加载一个包含1000亿行的表并试图了解哪个值有问题时,这将有很大帮助。添加SELECT的列号同样有用。例如,选择CAST(12345678910作为十进制数(12,0)


存储大于整数范围的值。您应该使用bigint数据类型

我甚至不打算开始整理upI通过在线格式化程序丢弃您的SQL。但是仍然可以手动整理。为什么没有内置格式化程序选项?如果您正在侦听,Microsoft会显示错误消息“Msg 8115,16级,状态8,第1行算术溢出错误将数字转换为数据类型数字”。可以通过指示无法转换的原始值来改进。当加载一个包含1000亿行的表并试图了解哪个值有问题时,这将有很大帮助。添加SELECT的列号同样有用。例如,选择CAST(12345678910作为十进制数(12,0)),CAST(12345678910作为十进制数(12,2))…在错误消息中添加字符串:“Value:12345678910 Column:2”。我不必回答自动生成帐户的人提出的问题;他们不知道自己身在何处,一旦修好了就再也不会回来了@用户572984:你好!?有人在家吗?不,我不这么认为。我把小数点去掉了,所以它变大了。谢谢选中
数据库字段长度
等于,以
DataTableAdapter
指定列的长度-存储过程的特定参数Length@OlaTuvesson幸运的是,尽管User572984很长,而且可能永远也看不到它,但截至今天(2020年10月8日),它已经被浏览了27万多次!因此,在向未知用户支付费用的过程中,它让多达270K的用户受益!通过提高精度并保持比例不变,可以增加小数点前的位数。因此,我所说的没有错,但我确实明白这会被误解。我这样说是因为OP最初只是试图通过增加规模来解决问题,但你是对的;需要提高的是总精度。哇!非常感谢你,伙计。。这个答案真的帮了我很大的忙。TRY_CAST接受一个表达式,其值为CAST。不仅仅是你所说的字符串。虽然这会允许例程无误地完成,但它将以丢失数据为代价。错误的目的是表明需要干预以防止数据丢失。只有在您真正不关心结果是否存在的情况下,您的解决方案才会起作用。OP表示所讨论的列是数值列,而不是整数列(如错误消息“算术溢出错误将数值转换为数据类型数值”所示),最上面的答案正确地解决了这一问题。您的答案正确地识别了问题(没有足够的空间存储结果),但没有达到问题的初衷。
Msg 8115, Level 16, State 8, Line 33
Arithmetic overflow error converting numeric to data type numeric.
The statement has been terminated.
DECLARE @StartDate AS DATETIME
DECLARE @StartDate_y AS DATETIME
DECLARE @EndDate AS DATETIME
DECLARE @temp_y AS DATETIME

SET @temp_y = Dateadd(yy, Datediff(yy, 0, Getdate()), 0)
SET @StartDate_y = Dateadd(dd, 1 - Datepart(dw, Dateadd("ww", -2, @temp_y)),
                                      Dateadd("ww", -2, @temp_y))
SET @StartDate = Dateadd(dd, 1 - Datepart(dw, Dateadd("ww", -2, Getdate())),
                                  Dateadd("ww", -2, Getdate()))
SET @EndDate = Dateadd(dd, 6, @StartDate)

--temp table to hold all cities in list
CREATE TABLE ##temp
  (
     city VARCHAR(50)
  )

INSERT INTO ##temp
VALUES     ('ABERDEEN'),
            ('CHESAPEAKE'),
            ('Preffered-Seafood/CHICAGO'),
            ('Preffered-Redist/CHICAGO'),
            ('CLACKAMAS'),
            ('COLUMBUS'),
            ('CONKLIN'),
            ('DENVER'),
            ('FORT WORTH'),
            ('HANOVER PARK'),
            ('JACKSONVILLE'),
            ('LAKELAND'),
            ('MONTGOMERY'),
            ('PFW-NORTHEAST'),
            ('PFW-SOUTHEAST'),
            ('RIVERSIDE'),
            ('TRENTON,CANADA'),
            ('VERNON')

--temp to hold data for the cities
CREATE TABLE #temp
  (
     city            VARCHAR(50),
     ytdshipments    INT,
     ytdtotalweight  DECIMAL(7, 2) NOT NULL,
     ytdtotalcharges DECIMAL (7, 2) NOT NULL
  --YTDRevperPound decimal (7,2) not null
  )

INSERT INTO #temp
SELECT ##temp.city,
       0,
       0,
       0
FROM   ##temp

INSERT #temp
-- YTD shipments/Charges/Weight by city
SELECT city = CASE
                WHEN nameaddrmstr_1.city IN( 'ABERDEEN', 'CHESAPEAKE', 'CHICAGO'
                                             ,
                                             'CLACKAMAS',
                                             'COLUMBUS', 'CONKLIN', 'DENVER',
                                             'FORT WORTH',
                                             'HANOVER PARK', 'JACKSONVILLE',
                                             'LAKELAND'
                                             ,
                                             'MONTGOMERY'
                                                    ,
                                             'RIVERSIDE', 'TRENTON', 'VERNON' )
              THEN
                CASE
                  WHEN
              nameaddrmstr_1.city = 'CHICAGO'
              AND h.shipr = 'PREFRESVS' THEN 'Preffered-Redist/CHICAGO'
                WHEN
              nameaddrmstr_1.city = 'TRENTON'
              AND nameaddrmstr_1.city = 'CA' THEN 'TRENTON,CANADA'
                ELSE
              nameaddrmstr_1.city
                END
                ELSE 'Other'
              END,
       ytdshipments = COUNT(CONVERT(VARCHAR(10), h.dateshipped, 101)),
       ytdtotalweight =SUM(CASE
                             WHEN h.totaldimwgt > h.totalwgt THEN h.totaldimwgt
                             ELSE h.totalwgt
                           END),
       ytdtotalcharges = SUM (cs.totalestrevcharges)
--YTDRevperPound = convert(decimal(7,2),sum (cs.TotalEstRevCharges )/sum( CASE WHEN h.TotalDimWGT > > h.TotalWGT THEN h.TotalDimWGT ELSE h.TotalWGT END ))
FROM   as400.dbo.hawb AS h WITH(nolock)
       INNER JOIN as400.dbo.chargesummary AS cs
         ON h.hawbnum = cs.hawbnum
       LEFT OUTER JOIN as400.dbo.nameaddrmstr AS nameaddrmstr_1
         ON h.shipr = nameaddrmstr_1.nameaddrcode
WHERE  h.dateshipped >= '01/01/2010'
       AND h.dateshipped <= '12/19/2010'
       --WHERE H.DateShipped >= >= @StartDate_y AND H.dateshipped <= @EndDate 
       AND h.cust IN( 'DARDENREED', 'MAINEDARDE', 'MBMRIVRSDE', 'MBMCOLUMBS',
                      'MBMLAKELND', 'MBMFTWORTH', 'SYGMACOLUM', 'SYGMANETW6',
                      'MAI215', 'MBMMNTGMRY' )
GROUP  BY CASE
  WHEN nameaddrmstr_1.city IN( 'ABERDEEN', 'CHESAPEAKE', 'CHICAGO', 'CLACKAMAS',
                               'COLUMBUS', 'CONKLIN', 'DENVER', 'FORT WORTH',
                               'HANOVER PARK', 'JACKSONVILLE', 'LAKELAND',
                               'MONTGOMERY'
                                      ,
                               'RIVERSIDE', 'TRENTON', 'VERNON' ) THEN CASE
                                                                         WHEN
nameaddrmstr_1.city = 'CHICAGO'
AND h.shipr = 'PREFRESVS' THEN 'Preffered-Redist/CHICAGO'
                                                                         WHEN
nameaddrmstr_1.city = 'TRENTON'
AND nameaddrmstr_1.city = 'CA' THEN 'TRENTON,CANADA'
                                                                         ELSE
nameaddrmstr_1.city
                                                                       END
  ELSE 'Other'
END

SELECT #temp.city                 AS city,
       MAX(#temp.ytdshipments)    AS ytdshipments,
       MAX(#temp.ytdtotalweight)  AS ytdtotalweight,
       MAX(#temp.ytdtotalcharges) AS ytdtotalcharges
FROM   #temp WITH(nolock)
       LEFT OUTER JOIN ##temp
         ON ##temp.city = #temp.city
GROUP  BY #temp.city

DROP TABLE #temp

DROP TABLE ##temp