Birlikte birleştirmek istediğim iki sorgu (bazı geçici tablolardan oluşuyor) var. Sendikayla ilgili soruların hangisini (hangisinin önemli olduğunu) açıkladığımda işe yarıyor. Ancak, birliği tanıttığımda, The ntext data type cannot be selected as DISTINCT because it is not comparable.
'u aldım. Neden ana sorguların hiçbirinin farklı kullanılmadığını anlayamıyorum.Birleştirme Nedeniyle ntext veri türü, karşılaştırılabilir olmadığından DISTINCT olarak seçilemiyor
SELECT
dbo.CUSTTABLE.ACCOUNTNUM AS 'Account Number',
dbo.CUSTTABLE.NAME AS 'Customer Name',
[DESCRIPTION] AS 'Division',
ISNULL(dbo.USERINFO.NAME, 'OPEN') AS 'Sales Engineer',
[STATE],
PHONE,
PAYMTERMID AS 'Terms',
(CASE BLOCKED
WHEN 0 THEN 'No'
WHEN 2 THEN 'Financial Hold'
WHEN 1 THEN 'System Hold'
ELSE 'Unknown' END) AS 'Status',
[45-60],
[61-90],
[91-120],
[120+],
#temptable2.Today,
ISNULL(USERMEMO, '') AS 'Notes',
ISNULL(#temptable2.Today/NULLIF((ISNULL(#salesTemp.PQ1, 0)/90), 0),0) AS 'DSO1',
CustTable.StatisticsGroup as 'Past Due Category'
FROM
dbo.CUSTTABLE INNER JOIN
dbo.DIMENSIONS ON DIMENSION2_ = NUM INNER JOIN
#temptable2 ON dbo.CUSTTABLE.ACCOUNTNUM = #temptable2.ACCOUNTNUM LEFT OUTER JOIN
#temptable ON dbo.CUSTTABLE.ACCOUNTNUM = #temptable.ACCOUNTNUM LEFT OUTER JOIN
dbo.SMMSALESUNITMEMBERS ON SALESGROUP = SALESUNITID AND SALESMANAGER = 1 LEFT OUTER JOIN
dbo.USERINFO ON ID = SALESMANID AND [ENABLE] = 1
JOIN #salesTemp on #salesTemp.ACCOUNTNUM = CUSTTABLE.ACCOUNTNUM
WHERE
DIMENSION2_ IN (@division)
UNION
SELECT
Customer_ID AS 'Account Number',
Customer_Name AS 'Customer Name',
'South Bend' AS Division,
'' AS 'Sales Engineer',
'Indiana' AS 'State',
'' AS 'Phone',
Customer_Terms AS 'Terms',
'' AS 'Status',
[45-60],
[61-90],
[91-120],
[120+],
[Today],
'' AS 'Notes',
'' AS 'DSO1',
'' AS 'Past Due Category'
FROM #temptable4
Bir sendika varsayılan olarak ntext ile desteklenmeyen bir farklı uygular. Sorunun geçip geçmediğini görmek için BÜTÜN TÜMÜNÜ (farklı bir şey yapmaz) deneyin. Eğer öyleyse, o zaman her bir alanın veri türleri herhangi bir ntext 'dir? Eğer öyleyse, değeri nvarchar'a (max) http://social.msdn.microsoft.com/Forums/sqlserver/en-US/c836eda3-f969-4ec2-a231-b2930e288ad5/select-distinct- olarak eklemeniz gerekebilir. ntext alanları veya http://stackoverflow.com/questions/1028061/is-there-any-way-to-distinct-or-group-by-a-text-or-ntext-in-sql-server- 2005 – xQbert
Union all Bana "Veri türü varchar'ı sayısal olarak dönüştürürken hata veriyor." aynı noktada. Datatypes karakter alanları – rigamonk
için char veya varchar şunlardır: # temptable2.Today, # salesTemp.PQ1, enable, salesmanager? Ayrıca '' AS 'DSO1' olabilir, 'SQL server boş dizgeyi ele alıp almadığından emin değilim ve bu nedenle sayısal değere dönüştürebilmek yerine 'NULL AS' DSO1 '' yapması gerekebiliyor ... Infact ... bahse girerim bu son bölümdür. – xQbert