Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Вопросик про объединение таблиц (число прочтений - 1621 )
Rubin
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 70
Зарегистрирован: 31. Июля 2007
Вопросик про объединение таблиц
04. Декабря 2008 :: 11:42
Печать  
Подскажите, пожалуйста, как можно сделать, что бы из вот такого запроса:

Код
Выбрать все
SELECT
	ТаблПродаж.Товар	[Товар],
	ТаблПродаж.Расход	[Расход],
	ТаблОстатков.Остаток	[Остаток]

FROM (
	SELECT
		'Товар1' as Товар,
		10 as Расход	    
	UNION ALL
	SELECT
		'Товар3' as Товар,
		14 as Расход	    
) as ТаблПродаж  

???? JOIN (
	SELECT
		'Товар1' as Товар,
		25 as Остаток	    
	UNION ALL
	SELECT
		'Товар2' as Товар,
		64 as Остаток	    
) as ТаблОстатков On ТаблОстатков.Товар = ТаблПродаж.Товар 



Получилась таблица:
Код
Выбрать все
Товар 1  -  10  -  25
Товар 2  -   0  -  64
Товар 3  -  14  -   0 

 ???
  
Наверх
 
IP записан
 
Rubin
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 70
Зарегистрирован: 31. Июля 2007
Re: Вопросик про объединение таблиц
Ответ #1 - 04. Декабря 2008 :: 11:50
Печать  
хотя наверно можно третью таблицу, в которой будет Товар1 2 и 3 и через неё соединяться 2 оставшиеся...
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Вопросик про объединение таблиц
Ответ #2 - 04. Декабря 2008 :: 11:52
Печать  
SELECT
     isnull(ТаблПродаж.Товар, ТаблОстатков.Товар)      [Товар],
     isnull(ТаблПродаж.Расход,0)      [Расход],
     isnull(ТаблОстатков.Остаток,0)      [Остаток]

FROM (
     SELECT
           'Товар1' as Товар,
           10 as Расход         
     UNION ALL
     SELECT
           'Товар3' as Товар,
           14 as Расход         
) as ТаблПродаж 

full JOIN (
     SELECT
           'Товар1' as Товар,
           25 as Остаток         
     UNION ALL
     SELECT
           'Товар2' as Товар,
           64 as Остаток         
) as ТаблОстатков On ТаблОстатков.Товар = ТаблПродаж.Товар
  

1&&2&&3
Наверх
 
IP записан
 
Rubin
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 70
Зарегистрирован: 31. Июля 2007
Re: Вопросик про объединение таблиц
Ответ #3 - 04. Декабря 2008 :: 11:54
Печать  
Спасибо!! Попробую
  
Наверх
 
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: Вопросик про объединение таблиц
Ответ #4 - 08. Декабря 2008 :: 14:02
Печать  
Только по-моему не
isnull(ТаблПродаж.Товар, ТаблОстатков.Товар)  
а
coalesce(ТаблПродаж.Товар, ТаблОстатков.Товар)

(во всех трёх случаях) 
  

А для тех, кто не хотел учить SQL, господь сотворил курсоры
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Вопросик про объединение таблиц
Ответ #5 - 08. Декабря 2008 :: 14:24
Печать  
при двух параметрах - одно и тоже
  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать