2016-11-29 59 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