Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2013, 21:02   #1
klepsburger
 
Аватар для klepsburger
 
Регистрация: 21.10.2010
Сообщений: 7
Восклицание Как сделать одну таблицу из нескольких

Всем добрый вечер, уже 3ий час ломаю голову:

У меня есть три таблички:
табличка а:
код типа| количество_1
П | 2
Р | 4
Ф | 6

табличка б:

код типа| количество_2
Р | 2
Ф | 5

табличка в:

код типа| количество_3
П | 7
Р | 7

а получить надо табличку такую:

код типа| количество_1 | количество_2 | количество_1 |
П | 2 | 0 | 7 |
Р | 4 | 2 | 7 |
Ф | 6 | 5 | 0 |



Вроде бы выглядит всё очень просто, но у меня не получается вообще, спасибо всем, кто откликнется
klepsburger вне форума Ответить с цитированием
Старый 24.11.2013, 21:21   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Для разных СУБД могжет отличаться. Как-то так, но три таблицы соединять с помощью FULL JOIN не приходилось, может и не прав
Код:
SELECT COALESCE(A.[код типа],B.[код типа],C.[код типа]) AS [код типа],
    COALESCE(A.количество_1,0) AS количество_1,
    COALESCE(B.количество_2,0) AS количество_2,
    COALESCE(C.количество_3,0) AS количество_3
  FROM TableA A
    FULL JOIN TableB B ON B.[код типа]=A.[код типа]
    FULL JOIN TableC C ON C.[код типа]=A.[код типа] AND C.[код типа]=B.[код типа]
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.11.2013, 21:33   #3
klepsburger
 
Аватар для klepsburger
 
Регистрация: 21.10.2010
Сообщений: 7
По умолчанию

СУБД FoxPro, и судя по всему он не знает что такое COALESCE (coalesce.prg does not exist)
klepsburger вне форума Ответить с цитированием
Старый 24.11.2013, 21:46   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Там NVL кажись есть
Для 2-х NVL(A,B)
Для 3-х NVL(A,NVL(B,C))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.11.2013, 22:15   #5
klepsburger
 
Аватар для klepsburger
 
Регистрация: 21.10.2010
Сообщений: 7
По умолчанию

Большое человеческое спасибо!)
klepsburger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать одну форму поверх другой lu_una Общие вопросы Delphi 16 26.11.2012 18:28
Из нескольких .csv файлов сделать excel таблицу aadafh Microsoft Office Excel 2 18.08.2012 22:06
Как сделать одну из колонок DBGridEh недоступной? Vit@L Общие вопросы Delphi 11 11.01.2011 23:00
Экспорт значений из нескольких документов Word в одну таблицу Excel для дальнейших расчетов. YJYNGK Microsoft Office Excel 0 30.10.2010 13:42
Как сделать одну динамическую библиотеку из нескольких статических? VIIIP Общие вопросы C/C++ 0 20.10.2010 17:25