Question

Im Trying to specify the name of my subquery column heading to "EmailAddress". The below code is saying 'No Column Name' can somebody tell me my error of my ways??

SELECT     'RFW' + CAST(ALOPS.dbo.PLSupplierAccount.PLSupplierAccountID AS VARCHAR(10)) AS PKnumber,
(SELECT Max(alops.dbo.PLSupplierContactValue.ContactValue)AS EmailAddress
   FROM alops.dbo.PLSupplierAccount as PLSup, ALOPS.dbo.PLSupplierContact, 
      ALOPS.dbo.PLSupplierContactValue ,     ALOPS.dbo.SYSContactType 
  WHERE 
     PLSup.PLSupplierAccountID = alops.dbo.PLSupplierAccount.PLSupplierAccountID
     AND PLSup.PLSupplierAccountID = alops.dbo.PLSupplierContact.PLSupplierAccountID
     AND alops.dbo.PLSupplierContactValue.PLSupplierContactID = 
     alops.dbo.PLSupplierContact.PLSupplierContactID
     AND alops.dbo.SYSContactType.SYSContactTypeID = alops.dbo.PLSupplierContactValue.SYSContactTypeID 
     AND alops.dbo.SYSContactType.Name='E-mail Address') ,
     ALOPS.dbo.PLSupplierAccount.PLSupplierAccountID AS AccountID, 
     ALOPS.dbo.PLSupplierAccount.SupplierAccountNumber AS AccountRef,      
     ALOPS.dbo.PLSupplierAccount.SupplierAccountName AS AccountName, 'RFW' AS Company, 
     ALOPS.dbo.PLSupplierLocation.AddressLine1, ALOPS.dbo.PLSupplierLocation.AddressLine2, 
     ALOPS.dbo.PLSupplierLocation.AddressLine3, 
     ALOPS.dbo.PLSupplierLocation.AddressLine4, ALOPS.dbo.PLSupplierLocation.Postcode,
     (ALOPS.dbo.PLSupplierAccount.MainTelephoneAreaCode + 
     ALOPS.dbo.PLSupplierAccount.MainTelephoneSubscriberNumber) as Telephone
             FROM    
                ALOPS.dbo.PLSupplierAccount INNER JOIN
                ALOPS.dbo.PLSupplierLocation ON ALOPS.dbo.PLSupplierAccount.PLSupplierAccountID =            
                ALOPS.dbo.PLSupplierLocation.PLSupplierAccountID
Was it helpful?

Solution

Alias is in the wrong place try

(SELECT Max(alops.dbo.PLSupplierContactValue.ContactValue)
FROM alops.dbo.PLSupplierAccount as PLSup, ALOPS.dbo.PLSupplierContact, ALOPS.dbo.PLSupplierContactValue , ALOPS.dbo.SYSContactType) AS EmailAddress

OTHER TIPS

You need to give alias name to the inner select as well which defines the column name. Check the following

SELECT     'RFW' + CAST(ALOPS.dbo.PLSupplierAccount.PLSupplierAccountID AS VARCHAR(10)) AS PKnumber,
(SELECT Max(alops.dbo.PLSupplierContactValue.ContactValue)
   FROM alops.dbo.PLSupplierAccount as PLSup, ALOPS.dbo.PLSupplierContact, 
      ALOPS.dbo.PLSupplierContactValue ,     ALOPS.dbo.SYSContactType 
  WHERE 
     PLSup.PLSupplierAccountID = alops.dbo.PLSupplierAccount.PLSupplierAccountID
     AND PLSup.PLSupplierAccountID = alops.dbo.PLSupplierContact.PLSupplierAccountID
     AND alops.dbo.PLSupplierContactValue.PLSupplierContactID = 
     alops.dbo.PLSupplierContact.PLSupplierContactID
     AND alops.dbo.SYSContactType.SYSContactTypeID = alops.dbo.PLSupplierContactValue.SYSContactTypeID 
     AND alops.dbo.SYSContactType.Name='E-mail Address') AS EmailAddress,
     ALOPS.dbo.PLSupplierAccount.PLSupplierAccountID AS AccountID, 
     ALOPS.dbo.PLSupplierAccount.SupplierAccountNumber AS AccountRef,      
     ALOPS.dbo.PLSupplierAccount.SupplierAccountName AS AccountName, 'RFW' AS Company, 
     ALOPS.dbo.PLSupplierLocation.AddressLine1, ALOPS.dbo.PLSupplierLocation.AddressLine2, 
     ALOPS.dbo.PLSupplierLocation.AddressLine3, 
     ALOPS.dbo.PLSupplierLocation.AddressLine4, ALOPS.dbo.PLSupplierLocation.Postcode,
     (ALOPS.dbo.PLSupplierAccount.MainTelephoneAreaCode + 
     ALOPS.dbo.PLSupplierAccount.MainTelephoneSubscriberNumber) as Telephone
             FROM    
                ALOPS.dbo.PLSupplierAccount INNER JOIN
                ALOPS.dbo.PLSupplierLocation ON ALOPS.dbo.PLSupplierAccount.PLSupplierAccountID =            
                ALOPS.dbo.PLSupplierLocation.PLSupplierAccountID

Hope this helps

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top