안녕하세요 저는 col1/sum2를 계산할보기를 만들었습니다. col1에는 미리 정의 된 값 100150455060 및 NA가 포함되어 있습니다. col1의 데이터 유형은 varchar이고 col2의 데이터 유형은 numeric입니다. 나는 COL1 그러나 내가내 응용 프로그램에서 데이터 형식 varchar를 숫자로 변환하는 중 오류가 발생했습니다.
IF EXISTS(SELECT * FROM dbo.sysobjects WHERE ID = OBJECT_ID(N'ROM_PAD_REPORT') AND XTYPE = 'V')
DROP VIEW ROM_PAD_REPORT
GO
CREATE VIEW [dbo].[ROM_PAD_REPORT]
AS
SELECT DISTINCT CAST(NULL AS UNIQUEIDENTIFIER) AS PK,
DTS.PK AS PPK,
\t \t A.PROD_BLOCK,
A.ELEVATION,
A.MATERIAL_TYPE,
\t A.SAMPLE_COUNT,
\t A.QC_SAMPLE_COUNT,
\t \t A.TRUCK_CAPACITY,
\t \t A.CONTENT,
\t \t A.Valuegt AS GRAMS_PER_BLOCK,
\t \t A.DATE_DISPACTHED as DATE_DISPATCHED
\t \t
FROM (SELECT RP.PROD_BLOCK,
\t \t \t MIN(RP.ELEVATION) AS ELEVATION,
\t \t \t MAX(RP.MATERIAL_TYPE)AS MATERIAL_TYPE,
\t \t \t MAX(RP.DATE_DISPACTHED) AS DATE_DISPACTHED,
\t \t \t SUM(CAST (RP.TRUCK_CAPACITY AS varchar(8))) AS TRUCK_CAPACITY,
\t \t \t SUM(RP.CONTENT) AS CONTENT,
\t \t \t (SUM(CAST(RP.TRUCK_CAPACITY AS varchar(8)))/SUM(RP.CONTENT)) AS Valuegt,
\t \t \t (SELECT COUNT(DD.SAMPLE_ID) FROM ROM_PAD_DATA DD WHERE DD.PROD_BLOCK = RP.PROD_BLOCK) AS SAMPLE_COUNT,
\t \t \t (SELECT COUNT(DD.SAMPLE_ID) FROM ROM_PAD_DATA DD WHERE DD.PROD_BLOCK = RP.PROD_BLOCK and DD.SAMPLE_TYPE IN ('STD', 'BLANK')) AS QC_SAMPLE_COUNT
\t \t FROM ROM_PAD_DATA RP
\t \t WHERE RP.TRUCK_CAPACITY <> 'NA'
\t \t GROUP BY RP.PROD_BLOCK) A
\t \t
JOIN ROM_PAD_DATA B ON A.PROD_BLOCK = B.PROD_BLOCK
JOIN DATASET DTS ON (B.PPK = DTS.PK)
JOIN BUS_UNIT BU ON (BU.PK = DTS.PPK)
GO
GRANT SELECT ON ROM_PAD_REPORT TO sableApp
GO
이 오류는'WHERE RP.TRUCK_CAPACITY <> 'NA ''에 있습니다.이 검사를'WHERE CAST (RP.TRUCK_CAPACITY AS NVARCHAR) <>'NA ''로 바꾸어보십시오. –