2016-11-29 55 views
0

我射擊在SQL Server查詢以下使用別名,但它失敗,出現錯誤查詢,而不在SQL Server

「沒有列名列指定」。

我不想提供別名,因爲傳遞給查詢的默認值是巨大的,給每個人都很費時。

在SQL Server中有沒有一種方法來激發沒有別名的查詢?

下面的查詢仍然繼續,其他聯合子句添加,粘貼查詢只是它的一部分。

我不想創建腳本,想以查詢的形式實現這個。

select count(*) 
from 
    (select distinct 
     a.Company, a.BilltoCustomerNo, 0, 'No Customer', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 0, 0, 0, 'n/a', 'n/a', 'n/a', 0, 0, 'n/a', 'n/a', 0, 0, 'n/a', 'n/a', 'n/a', 0, 0, 'n/a', convert(datetime, '19000101', 112), 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 0, 0, 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 0, 'n/a', 'n/a', convert(datetime, '19000101', 112), 'n/a', convert(datetime, '19000101', 112), 0, 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 0, 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 0, 'n/a', 0, 'n/a', 0, 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 0, 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 0, 'n/a', 'n/a', 0, 'n/a', 'n/a', 'n/a', 'n/a', 0, 0, 0, 0, 0, 0, 0, 0, 0, 'na', 'na' 
    from 
     dJob a 
    left outer join 
     dCustomer b on a.Company = b.Company and a.BilltoCustomerNo = b.No 
    where 
     b.Company is null) x 

感謝

+0

這是不可能的 – TheGameiswar

回答

1

,因爲他們什麼都不添加你可以刪除所有這些列。查詢在功能上與沒有它們的全部返回常量值相同,因此唯一要處理的是前兩列(它有一個名稱),並且將它們全部扔到外部查詢中無論如何,這個部分都是SELECT COUNT(*)

select count(*) 
from (select distinct a.Company, a.BilltoCustomerNo 
     from dJob a 
     left outer join dCustomer b on a.Company = b.Company and a.BilltoCustomerNo = b.No 
     where b.Company is null) x 
2

您可以將該查詢簡化爲單個語句,並擺脫所有那些毫無意義的標量值。

select count(*) 
from dJob a 
left outer join dCustomer b on a.Company = b.Company and a.BilltoCustomerNo = b.No 
where b.Company is null 
group by a.Company, a.BilltoCustomerNo