Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите пожалуйсто объеденить запросы 
:(
    Опции темы
mauar
Дата 18.8.2011, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 5.9.2007

Репутация: нет
Всего: нет



Помогите пожалуйсто объеденить между собой запросы

Есть запрос 1:

 
Код

   Select   RupayUser.RupayUserId, dbo.RupayUser.BirthDate
    From dbo.RupayUser
    inner join dbo.Account
     on dbo.Account.AccountId = RupayUser.RupayUserId  




Есть запрос 2:

Код

Select top 100 * from (select Account.AccountId
    ,Account.AmountCurrency
    ,Account.CreationDate
    ,legal_LegalEntity.Name
    ,legal_LegalEntity.FullName
    ,legal_LegalEntity.Fax
    ,legal_LegalEntity.Phone
    ,legal_LegalEntity.SiteUrl
    ,legal_LegalEntity.Inn
    ,legal_LegalEntity.Kpp
    ,legal_LegalEntity.LegalAddress
    ,legal_LegalEntity.MobilePhone
    ,legal_LegalEntity.Ogrn
    ,legal_LegalEntity.Okpo
    ,legal_Contract.ContractId
    ,legal_Contract.ContractNumber
    ,legal_Contract.ContractDate
    ,legal_LegalEntity.BankId
    ,legal_LegalEntity.SettleAccount
    ,legal_Bank.NEWNUM
    ,legal_Bank.KSNP
    ,legal_LegalEntity.LegalAddress as LegalAddressYurik 
    ,legal_LegalEntity.RealAddress as RealAddressYurik
    ,legal_LegalEntity.LegalEntityId
    ,fizik_goga = case when legal_LegalEntity.LegalEntityId is not NULL then 'yurik'
    else 'fizik' 
    end
    , organization = case when Account.CompanyTransferDate is null then 'RM'
    else 'DP'
    end
    from Account
    inner join acc_RupayAccount on Account.AccountId = acc_RupayAccount.RupayAccountId
    left join dbo.RupayUser on RupayUser.RupayUserId = acc_RupayAccount.RupayUserId
    left join dbo.legal_LegalEntity on legal_LegalEntity.RupayUserId = RupayUser.RupayUserId
    left join dbo.legal_Contract on legal_LegalEntity.ContractId = legal_Contract.ContractId
    left join dbo.legal_Bank on legal_Bank.BankId = legal_LegalEntity.BankId
    union all
    -- СКО
    select Account.AccountId
    ,Account.AmountCurrency
    ,Account.CreationDate
    ,'' as Name
    ,'' as FullName
    ,'' as Fax
    ,'' as Phone
    ,'' as SiteUrl
    ,'' as Inn
    ,'' as Kpp
    ,'' as LegalAddress
    ,'' as MobilePhone
    ,'' as Ogrn
    ,'' as Okpo
    ,'' as ContractId
    ,'' as ContractNumber
    ,'' as ContractDate
    ,'' as BankId
    ,'' AS SettleAccount
    ,'' AS NEWNUM
    ,'' as KSNP
    ,'' as LegalAddressYurik 
    ,'' as RealAddressYurik
    ,'' as LegalEntityId
    ,'SKO' as fizik_goga
    , organization = case when Account.CompanyTransferDate is null then 'RM'
    else 'DP'
    end
    from Account
    inner join dbo.acc_InvoiceAccount on dbo.acc_InvoiceAccount.InvoiceAccountId = Account.AccountId    ) as Tab 



а если вместе сделать вот так:

Код

Select top 100 * from (select Account.AccountId
    ,Account.AmountCurrency
    ,Account.CreationDate
    ,legal_LegalEntity.Name
    ,legal_LegalEntity.FullName
    ,legal_LegalEntity.Fax
    ,legal_LegalEntity.Phone
    ,legal_LegalEntity.SiteUrl
    ,legal_LegalEntity.Inn
    ,legal_LegalEntity.Kpp
    ,legal_LegalEntity.LegalAddress
    ,legal_LegalEntity.MobilePhone
    ,legal_LegalEntity.Ogrn
    ,legal_LegalEntity.Okpo
    ,legal_Contract.ContractId
    ,legal_Contract.ContractNumber
    ,legal_Contract.ContractDate
    ,legal_LegalEntity.BankId
    ,legal_LegalEntity.SettleAccount
    ,legal_Bank.NEWNUM
    ,legal_Bank.KSNP
    ,legal_LegalEntity.LegalAddress as LegalAddressYurik 
    ,legal_LegalEntity.RealAddress as RealAddressYurik
    ,legal_LegalEntity.LegalEntityId
    ,fizik_goga = case when legal_LegalEntity.LegalEntityId is not NULL then 'yurik'
    else 'fizik' 
    end
    , organization = case when Account.CompanyTransferDate is null then 'RM'
    else 'DP'
    end
    from Account
    inner join acc_RupayAccount on Account.AccountId = acc_RupayAccount.RupayAccountId
    left join dbo.RupayUser on RupayUser.RupayUserId = acc_RupayAccount.RupayUserId
    left join dbo.legal_LegalEntity on legal_LegalEntity.RupayUserId = RupayUser.RupayUserId
    left join dbo.legal_Contract on legal_LegalEntity.ContractId = legal_Contract.ContractId
    left join dbo.legal_Bank on legal_Bank.BankId = legal_LegalEntity.BankId
    union all
    -- СКО
    select Account.AccountId
    ,Account.AmountCurrency
    ,Account.CreationDate
    ,'' as Name
    ,'' as FullName
    ,'' as Fax
    ,'' as Phone
    ,'' as SiteUrl
    ,'' as Inn
    ,'' as Kpp
    ,'' as LegalAddress
    ,'' as MobilePhone
    ,'' as Ogrn
    ,'' as Okpo
    ,'' as ContractId
    ,'' as ContractNumber
    ,'' as ContractDate
    ,'' as BankId
    ,'' AS SettleAccount
    ,'' AS NEWNUM
    ,'' as KSNP
    ,'' as LegalAddressYurik 
    ,'' as RealAddressYurik
    ,'' as LegalEntityId
    ,'SKO' as fizik_goga
    , organization = case when Account.CompanyTransferDate is null then 'RM'
    else 'DP'
    end
    from Account
    inner join dbo.acc_InvoiceAccount on dbo.acc_InvoiceAccount.InvoiceAccountId = Account.AccountId    
   
    Select   RupayUser.RupayUserId, dbo.RupayUser.BirthDate
    From dbo.RupayUser
    inner join dbo.Account
     on dbo.Account.AccountId = RupayUser.RupayUserId  ) as Tab 


ругается матом, по раздельности всё работает ))


делал так: 

Код

Select top 1000 * from (select Account.AccountId
    ,Account.AmountCurrency
    ,Account.CreationDate
    ,legal_LegalEntity.Name
    ,legal_LegalEntity.FullName
    ,legal_LegalEntity.Fax
    ,legal_LegalEntity.Phone
    ,legal_LegalEntity.SiteUrl
    ,legal_LegalEntity.Inn
    ,legal_LegalEntity.Kpp
    ,legal_LegalEntity.LegalAddress
    ,legal_LegalEntity.MobilePhone
    ,legal_LegalEntity.Ogrn
    ,legal_LegalEntity.Okpo
    ,legal_Contract.ContractId
    ,legal_Contract.ContractNumber
    ,legal_Contract.ContractDate
    ,legal_LegalEntity.BankId
    ,legal_LegalEntity.SettleAccount
    ,legal_Bank.NEWNUM
    ,legal_Bank.KSNP
    ,legal_LegalEntity.LegalAddress as LegalAddressYurik 
    ,legal_LegalEntity.RealAddress as RealAddressYurik
    ,legal_LegalEntity.LegalEntityId
    ,fizik_goga = case when legal_LegalEntity.LegalEntityId is not NULL then 'yurik'
    else 'fizik' 
    end
    , organization = case when Account.CompanyTransferDate is null then 'RM'
    else 'DP'
    end
    from Account
    inner join acc_RupayAccount on Account.AccountId = acc_RupayAccount.RupayAccountId
    left join dbo.RupayUser on RupayUser.RupayUserId = acc_RupayAccount.RupayUserId
    left join dbo.legal_LegalEntity on legal_LegalEntity.RupayUserId = RupayUser.RupayUserId
    left join dbo.legal_Contract on legal_LegalEntity.ContractId = legal_Contract.ContractId
    left join dbo.legal_Bank on legal_Bank.BankId = legal_LegalEntity.BankId
    union all
    -- СКО
    select Account.AccountId
    ,Account.AmountCurrency
    ,Account.CreationDate
    ,'' as Name
    ,'' as FullName
    ,'' as Fax
    ,'' as Phone
    ,'' as SiteUrl
    ,'' as Inn
    ,'' as Kpp
    ,'' as LegalAddress
    ,'' as MobilePhone
    ,'' as Ogrn
    ,'' as Okpo
    ,'' as ContractId
    ,'' as ContractNumber
    ,'' as ContractDate
    ,'' as BankId
    ,'' AS SettleAccount
    ,'' AS NEWNUM
    ,'' as KSNP
    ,'' as LegalAddressYurik 
    ,'' as RealAddressYurik
    ,'' as LegalEntityId
    ,'SKO' as fizik_goga
    , organization = case when Account.CompanyTransferDate is null then 'RM'
    else 'DP'
    end
    from Account
    inner join dbo.acc_InvoiceAccount on dbo.acc_InvoiceAccount.InvoiceAccountId = Account.AccountId  
    Union All
    Select RupayUser.RupayUserId, 
    RupayUser.BirthDate
    From dbo.RupayUser
    inner join dbo.Account
     on dbo.Account.AccountId = dbo.RupayUser.RupayUserId ) as Tab



 и так тоже неправильно:
Код

Select top 1000 * from (select Account.AccountId
    ,Account.AmountCurrency
    ,Account.CreationDate
    ,legal_LegalEntity.Name
    ,legal_LegalEntity.FullName
    ,legal_LegalEntity.Fax
    ,legal_LegalEntity.Phone
    ,legal_LegalEntity.SiteUrl
    ,legal_LegalEntity.Inn
    ,legal_LegalEntity.Kpp
    ,legal_LegalEntity.LegalAddress
    ,legal_LegalEntity.MobilePhone
    ,legal_LegalEntity.Ogrn
    ,legal_LegalEntity.Okpo
    ,legal_Contract.ContractId
    ,legal_Contract.ContractNumber
    ,legal_Contract.ContractDate
    ,legal_LegalEntity.BankId
    ,legal_LegalEntity.SettleAccount
    ,legal_Bank.NEWNUM
    ,legal_Bank.KSNP
    ,legal_LegalEntity.LegalAddress as LegalAddressYurik 
    ,legal_LegalEntity.RealAddress as RealAddressYurik
    ,legal_LegalEntity.LegalEntityId
    ,fizik_goga = case when legal_LegalEntity.LegalEntityId is not NULL then 'yurik'
    else 'fizik' 
    end
    , organization = case when Account.CompanyTransferDate is null then 'RM'
    else 'DP'
    end
    from Account
    inner join acc_RupayAccount on Account.AccountId = acc_RupayAccount.RupayAccountId
    left join dbo.RupayUser on RupayUser.RupayUserId = acc_RupayAccount.RupayUserId
    left join dbo.legal_LegalEntity on legal_LegalEntity.RupayUserId = RupayUser.RupayUserId
    left join dbo.legal_Contract on legal_LegalEntity.ContractId = legal_Contract.ContractId
    left join dbo.legal_Bank on legal_Bank.BankId = legal_LegalEntity.BankId
    union all
    -- СКО
    select Account.AccountId
    ,Account.AmountCurrency
    ,Account.CreationDate
    ,'' as Name
    ,'' as FullName
    ,'' as Fax
    ,'' as Phone
    ,'' as SiteUrl
    ,'' as Inn
    ,'' as Kpp
    ,'' as LegalAddress
    ,'' as MobilePhone
    ,'' as Ogrn
    ,'' as Okpo
    ,'' as ContractId
    ,'' as ContractNumber
    ,'' as ContractDate
    ,'' as BankId
    ,'' AS SettleAccount
    ,'' AS NEWNUM
    ,'' as KSNP
    ,'' as LegalAddressYurik 
    ,'' as RealAddressYurik
    ,'' as LegalEntityId
    ,'SKO' as fizik_goga
    , organization = case when Account.CompanyTransferDate is null then 'RM'
    else 'DP'
    end
    from Account
    inner join dbo.acc_InvoiceAccount on dbo.acc_InvoiceAccount.InvoiceAccountId = Account.AccountId  
    Union All
    Select RupayUser.RupayUserId, 
    cast(RupayUser.BirthDate as date) ,
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL
    From dbo.RupayUser
    inner join dbo.Account
     on dbo.Account.AccountId = dbo.RupayUser.RupayUserId ) as Tab


помогите пожалуйста их объединить


PM MAIL   Вверх
Zloxa
Дата 18.8.2011, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(mauar @  18.8.2011,  10:02 Найти цитируемый пост)
ругается матом

Вы наверно залились краской, потупились и не решились повторять эти глупости перед достойной публикой?



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
mauar
Дата 18.8.2011, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 5.9.2007

Репутация: нет
Всего: нет



а всё таки как их объеденить, union all есть, даже если пустые колонки я их прописываю как Null а всё равно не хочет
PM MAIL   Вверх
Zloxa
Дата 18.8.2011, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



и все таки, приведите текст ошибки. Желательно с указанием номера строки и позиции курсора. Квери аналайзер для некоторых типов ошибок может и это показать.

Это сообщение отредактировал(а) Zloxa - 18.8.2011, 10:21


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
mauar
Дата 18.8.2011, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 5.9.2007

Репутация: нет
Всего: нет



конвертацию вроде тоже делал cast(RupayUser.BirthDate as date) ,
может я не то конфертирую, я новичок sql 

текст ошибки:
Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.

Это сообщение отредактировал(а) mauar - 18.8.2011, 10:34
PM MAIL   Вверх
Zloxa
Дата 18.8.2011, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(mauar @  18.8.2011,  10:32 Найти цитируемый пост)
Conversion failed when converting date and/or time from character string. 

Другими словами, какое-то одно из полей, верхнем запросе определенном как дата, не может быть преобразованно к дате из строки во втором запросе. Возможно там содержится матерное слово, и это слово сервер затрудняется трансформировать в дату. А может быть столбец содержит данные, которые не совпадают с форматом представления дыты для  неявной конверсии и формат преобразования надо укзать явно.

Во первых тут можно схалявить и верхний с нижним подзапросом поменять местами, чтобы дата преобразовывалась в строку а не строка в дату, так больше шансов избежать ошибки.

Если же устранять саму ошибку... для начала надо локализовать поле, в котором она происходит. Обычно, чтобы отловить подобную ошибку, я начинаю коментировать поле за полем в обоих запросах, до тех пор, пока ошибка не устранится.Если запрос возвращает полей, использую для поска метод половинного деления -  коментирую половину полей, если ошибка не ушла, коментирую половину от оставшейся половины....  но тут, мне кажется - не ваш случай.  
После того, как поле локализуется, внимательно изучить данные, содержащиеся в этом поле и выявить те, которые не удается преобразовать в дату и что нибудь с ними сделать.

Это сообщение отредактировал(а) Zloxa - 18.8.2011, 10:49


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
mauar
Дата 18.8.2011, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 5.9.2007

Репутация: нет
Всего: нет



сделал так 

Код

Select top 1000 * from (select Account.AccountId
    ,Account.AmountCurrency
    , cast(Account.CreationDate as date)
    ,legal_LegalEntity.Name
    ,legal_LegalEntity.FullName
    ,legal_LegalEntity.Fax
    ,legal_LegalEntity.Phone
    ,legal_LegalEntity.SiteUrl
    ,legal_LegalEntity.Inn
    ,legal_LegalEntity.Kpp
    ,legal_LegalEntity.LegalAddress
    ,legal_LegalEntity.MobilePhone
    ,legal_LegalEntity.Ogrn
    ,legal_LegalEntity.Okpo
    ,legal_Contract.ContractId
    ,legal_Contract.ContractNumber
    ,legal_Contract.ContractDate
    ,legal_LegalEntity.BankId
    ,legal_LegalEntity.SettleAccount
    ,legal_Bank.NEWNUM
    ,legal_Bank.KSNP
    ,legal_LegalEntity.LegalAddress as LegalAddressYurik 
    ,legal_LegalEntity.RealAddress as RealAddressYurik
    ,legal_LegalEntity.LegalEntityId
    ,fizik_goga = case when legal_LegalEntity.LegalEntityId is not NULL then 'yurik'
    else 'fizik' 
    end
    , organization = case when Account.CompanyTransferDate is null then 'RM'
    else 'DP'
    end
    from Account
    inner join acc_RupayAccount on Account.AccountId = acc_RupayAccount.RupayAccountId
    left join dbo.RupayUser on RupayUser.RupayUserId = acc_RupayAccount.RupayUserId
    left join dbo.legal_LegalEntity on legal_LegalEntity.RupayUserId = RupayUser.RupayUserId
    left join dbo.legal_Contract on legal_LegalEntity.ContractId = legal_Contract.ContractId
    left join dbo.legal_Bank on legal_Bank.BankId = legal_LegalEntity.BankId
    union all
    -- СКО
    select Account.AccountId
    ,Account.AmountCurrency
    ,Account.CreationDate
    ,'' as Name
    ,'' as FullName
    ,'' as Fax
    ,'' as Phone
    ,'' as SiteUrl
    ,'' as Inn
    ,'' as Kpp
    ,'' as LegalAddress
    ,'' as MobilePhone
    ,'' as Ogrn
    ,'' as Okpo
    ,'' as ContractId
    ,'' as ContractNumber
    ,'' as ContractDate
    ,'' as BankId
    ,'' AS SettleAccount
    ,'' AS NEWNUM
    ,'' as KSNP
    ,'' as LegalAddressYurik 
    ,'' as RealAddressYurik
    ,'' as LegalEntityId
    ,'SKO' as fizik_goga
    , organization = case when Account.CompanyTransferDate is null then 'RM'
    else 'DP'
    end
    from Account
    inner join dbo.acc_InvoiceAccount on dbo.acc_InvoiceAccount.InvoiceAccountId = Account.AccountId  
    Union All
    Select RupayUser.RupayUserId, 
    cast(RupayUser.BirthDate as date) ,
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL
    From dbo.RupayUser
    inner join dbo.Account
     on dbo.Account.AccountId = dbo.RupayUser.RupayUserId ) as Tab


теперь выдает ошибку:

Msg 205, Level 16, State 1, Line 1
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.

что она означает?
PM MAIL   Вверх
Zloxa
Дата 18.8.2011, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(mauar @  18.8.2011,  10:59 Найти цитируемый пост)
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
что она означает? 

Объединяемые запросы должны возвращать одинаковое количество столбцов

Добавлено через 1 минуту и 11 секунд
Цитата(mauar @  18.8.2011,  10:59 Найти цитируемый пост)
, cast(Account.CreationDate as date)

Какого типа CreationDate? Кастовать дату в дату - не абсурд ли? Может лучше кастануть в строку?


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
mauar
Дата 18.8.2011, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 5.9.2007

Репутация: нет
Всего: нет



да строка Account.CreationDate имеет тип datetime, но если в строку тогда опять ругаться будет что тип не правильный, хм а почему сейчас количество полей неправильно возвращает, не писать же кучу Null как это обойти?
PM MAIL   Вверх
Zloxa
Дата 18.8.2011, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(mauar @  18.8.2011,  11:16 Найти цитируемый пост)
а почему сейчас количество полей неправильно возвращает,

Потому что вы так написали. Посчитайте, это действительно так.


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
mauar
Дата 18.8.2011, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 5.9.2007

Репутация: нет
Всего: нет



Код

Select top 1000 * from (select Account.AccountId
    ,Account.AmountCurrency
    , cast(Account.CreationDate as date)
    ,legal_LegalEntity.Name
    ,legal_LegalEntity.FullName
    ,legal_LegalEntity.Fax
    ,legal_LegalEntity.Phone
    ,legal_LegalEntity.SiteUrl
    ,legal_LegalEntity.Inn
    ,legal_LegalEntity.Kpp
    ,legal_LegalEntity.LegalAddress
    ,legal_LegalEntity.MobilePhone
    ,legal_LegalEntity.Ogrn
    ,legal_LegalEntity.Okpo
    ,legal_Contract.ContractId
    ,legal_Contract.ContractNumber
    ,legal_Contract.ContractDate
    ,legal_LegalEntity.BankId
    ,legal_LegalEntity.SettleAccount
    ,legal_Bank.NEWNUM
    ,legal_Bank.KSNP
    ,legal_LegalEntity.LegalAddress as LegalAddressYurik 
    ,legal_LegalEntity.RealAddress as RealAddressYurik
    ,legal_LegalEntity.LegalEntityId
    ,fizik_goga = case when legal_LegalEntity.LegalEntityId is not NULL then 'yurik'
    else 'fizik' 
    end
    , organization = case when Account.CompanyTransferDate is null then 'RM'
    else 'DP'
    end
    from Account
    inner join acc_RupayAccount on Account.AccountId = acc_RupayAccount.RupayAccountId
    left join dbo.RupayUser on RupayUser.RupayUserId = acc_RupayAccount.RupayUserId
    left join dbo.legal_LegalEntity on legal_LegalEntity.RupayUserId = RupayUser.RupayUserId
    left join dbo.legal_Contract on legal_LegalEntity.ContractId = legal_Contract.ContractId
    left join dbo.legal_Bank on legal_Bank.BankId = legal_LegalEntity.BankId
    union all
    -- СКО
    select Account.AccountId
    ,Account.AmountCurrency
    ,Account.CreationDate
    ,'' as Name
    ,'' as FullName
    ,'' as Fax
    ,'' as Phone
    ,'' as SiteUrl
    ,'' as Inn
    ,'' as Kpp
    ,'' as LegalAddress
    ,'' as MobilePhone
    ,'' as Ogrn
    ,'' as Okpo
    ,'' as ContractId
    ,'' as ContractNumber
    ,'' as ContractDate
    ,'' as BankId
    ,'' AS SettleAccount
    ,'' AS NEWNUM
    ,'' as KSNP
    ,'' as LegalAddressYurik 
    ,'' as RealAddressYurik
    ,'' as LegalEntityId
    ,'SKO' as fizik_goga
    , organization = case when Account.CompanyTransferDate is null then 'RM'
    else 'DP'
    end
    from Account
    inner join dbo.acc_InvoiceAccount on dbo.acc_InvoiceAccount.InvoiceAccountId = Account.AccountId  
    Union All
    Select RupayUser.RupayUserId, 
    cast(RupayUser.BirthDate as date),
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL
    From dbo.RupayUser
    inner join dbo.Account
     on dbo.Account.AccountId = dbo.RupayUser.RupayUserId ) as Tab



Сейчас пишет что некорртектный синтаксис
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'select'.

ругается на последнюю строчку а именно на as Tab
в чем тут может быть ошибка? 
PM MAIL   Вверх
mauar
Дата 18.8.2011, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 5.9.2007

Репутация: нет
Всего: нет



Всё родил, сделал по левому соединению из первого запроса ))

Код

Select top 1000 * from (select Account.AccountId
    ,Account.AmountCurrency
    ,Account.CreationDate 
    ,legal_LegalEntity.Name
    ,legal_LegalEntity.FullName
    ,legal_LegalEntity.Fax
    ,legal_LegalEntity.Phone
    ,legal_LegalEntity.SiteUrl
    ,legal_LegalEntity.Inn
    ,legal_LegalEntity.Kpp
    ,legal_LegalEntity.LegalAddress
    ,legal_LegalEntity.MobilePhone
    ,legal_LegalEntity.Ogrn
    ,legal_LegalEntity.Okpo
    ,legal_Contract.ContractId
    ,legal_Contract.ContractNumber
    ,legal_Contract.ContractDate
    ,legal_LegalEntity.BankId
    ,legal_LegalEntity.SettleAccount
    ,legal_Bank.NEWNUM
    ,legal_Bank.KSNP
    ,RupayUser.RupayUserId
    ,RupayUser.BirthDate
    ,legal_LegalEntity.LegalAddress as LegalAddressYurik 
    ,legal_LegalEntity.RealAddress as RealAddressYurik
    ,legal_LegalEntity.LegalEntityId
    ,fizik_goga = case when legal_LegalEntity.LegalEntityId is not NULL then 'yurik'
    else 'fizik' 
    end
    , organization = case when Account.CompanyTransferDate is null then 'RM'
    else 'DP'
    end
    from Account
    inner join acc_RupayAccount on Account.AccountId = acc_RupayAccount.RupayAccountId
    left join dbo.RupayUser on RupayUser.RupayUserId = acc_RupayAccount.RupayUserId
    left join dbo.legal_LegalEntity on legal_LegalEntity.RupayUserId = RupayUser.RupayUserId
    left join dbo.legal_Contract on legal_LegalEntity.ContractId = legal_Contract.ContractId
    left join dbo.legal_Bank on legal_Bank.BankId = legal_LegalEntity.BankId    
    where Account.CreationDate >'2011-01-01'
    union all

    select Account.AccountId
    ,Account.AmountCurrency
    ,Account.CreationDate
    ,Null
    ,Null
    ,'' as Name
    ,'' as FullName
    ,'' as Fax
    ,'' as Phone
    ,'' as SiteUrl
    ,'' as Inn
    ,'' as Kpp
    ,'' as LegalAddress
    ,'' as MobilePhone
    ,'' as Ogrn
    ,'' as Okpo
    ,'' as ContractId
    ,'' as ContractNumber
    ,'' as ContractDate
    ,'' as BankId
    ,'' AS SettleAccount
    ,'' AS NEWNUM
    ,'' as KSNP
    ,'' as LegalAddressYurik 
    ,'' as RealAddressYurik
    ,'' as LegalEntityId
    ,'SKO' as fizik_goga
    , organization = case when Account.CompanyTransferDate is null then 'RM'
    else 'DP'
    end
    from Account
    inner join dbo.acc_InvoiceAccount on dbo.acc_InvoiceAccount.InvoiceAccountId = Account.AccountId ) as Tab


гы осталось ещё 3 запроса сюда прикрутить ))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0870 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.