Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запрос SQL [D5, Paradox]


saf ©   (2002-04-03 10:46:00) 

Хочу объединить таблицы для статистики.
Делаю так:
select Nametovar, NoNaklad, Kolvo, Zena
from rashod
union all
select Nametovar, Nnaklad, Kolvo, Zena
from prihod
Выдаёт ошибку "Type Mismatch in expression"
Пробую по другому:
CREATE VIEW prihod_stat (Nametovar, NoNaklad, Kolvo, Zena)
AS SELECT prihod.Nametovar, NoNaklad, Kolvo, Zena
From prihod,rashod
Выдаёт ошибку "Capabiliti not Supported"
Поьогите разобраться, пожалуйста!!!!


kserg@ukr.net   (2002-04-05 16:22:00) [1]

1


kserg@ukr.net   (2002-04-05 12:37:00) [2]

Может дело в в группирующих скобках в запросе?
Я имею ввиду след:

(select 1) UNION ALL (select 2) UNION ALL (select N)

Причем если результат надо отсортировать,
то условия ORDER BY надо лепить в последнем запросе.
У меня таким макаром все пашет.

Удачи.


Donal_Graeme   (2002-04-05 11:48:00) [3]

э... а может, дело не в запросе вовсе?
проверь связанные с кверём таблицы, может, там уже прописаны поля с другими типами. или ты после выполнения запроса вытаскиваешь из него данные не с тем типом.


saf   (2002-04-04 19:53:00) [4]

Убрал autoincrement - тоже самое "Type Mismatch in expression"
Типы полей:
DatNakl - Date
Nametovar - alpha
NoNaklad - alpha
Kolvo - int
Zena - money


saf   (2002-04-04 19:40:00) [5]

Таблицы проверил несколько раз, всё точно соответствует
Вариант от roottimвыдает ту же ошибку,
а вариант Donal_Graeme- ругается на слова DateTime,alpha и т.д.
А может не работать из-за того что у таблиц есть поле autoincrement???? Попробую убрать.


Donal_Graeme   (2002-04-03 18:47:00) [6]

2 saf: точно типы соотвествуют вплоть до размера полей?

попробуй такой вариант :
select Cast (DatNakl as DateTime), Cast (Nametovar as alpha (255)), Cast (NoNaklad as alpha (255)), Cast (Kolvo as int), Cast (Zena as money)
from rashod
union all
select Cast (DatNakl as DateTime), Cast (Nametovar as alpha (255)), Cast (NoNaklad as alpha (255)), Cast (Kolvo as int), Cast (Zena as money)
from prihod

2 Aleksandr :
all в union писать обязательно, если хочешь получить все записи.
в select по умолчанию all а в union по умолчанию distinct.
другими словами
select all = select
union distinct = union


roottim   (2002-04-03 16:46:00) [7]

по красоте запрос выглядит прилично!.. но попробуй так.. мб поможет
select r.DatNakl, r.Nametovar, r.NoNaklad, r.Kolvo, r.Zena
from rashod r
union
select p.DatNakl, p.Nametovar, p.Nonaklad, p.Kolvo, p.Zena
from prihod p


saf   (2002-04-03 16:40:00) [8]

Сделал все поля соответствующими даже по имени и запрос такой:
select DatNakl, Nametovar, NoNaklad, Kolvo, Zena
from rashod
union
select DatNakl, Nametovar, Nonaklad, Kolvo, Zena
from prihod
Ошибка прежняя
П-О-М-О-Г-И-Т-Е !!!!!


saf   (2002-04-03 16:03:00) [9]

Aleksandr если так, то у меня ошибка, проверю размер, совмещу,
потом раскажу.


Aleksandr   (2002-04-03 13:38:00) [10]

Да, совпадения по типу достаточно... В одной таблице может быть поле VARCHAR(10), а во второй VARCHAR(15), кроме того, количество полей и их порядок тоже могут быть разными... Лишь бы порядок и количество перечисленных в запросеполей совпали.


Johnmen   (2002-04-03 13:30:00) [11]

>fnatali © :
>...они не только по типу должны совпадать...

Не обязательно...


Aleksandr   (2002-04-03 13:26:00) [12]

Я не понял, а зачем all?
Достаточно просто union...


fnatali   (2002-04-03 13:03:00) [13]

>saf © (03.04.02 12:39)
Такая ошибка говорит о несовпадении типов.Но они не только по типу должны совпадать, но и по размеру.Проверь.


saf   (2002-04-03 12:39:00) [14]

Обид нет. Я уже задавал этот вопрос и мне так посоветовали.
Купил крутую книгу "SQL для чайнаков", читаю, второй пример от туда.Что значит преобразование типов CAST(), у меня все эти поля соответствуют по типам?


Desdechados   (2002-04-03 11:42:00) [15]

2 Johnmen ©
Подучи SQL (без обид..) - по поводу all


Desdechados   (2002-04-03 11:39:00) [16]

VIEW поддерживается только SQL-серверами, к которым Paradox не относится.
А в первом варианте попробуй сделать явное преобразование типов CAST() для каждого поля в обоих частях SELECT


Johnmen   (2002-04-03 11:35:00) [17]

1. ...union all... Что за загадочное слово all ?
2. Не указано правило объединения таблиц...

Подучи SQL (без обид..) ;o)


Наверх

Титульная страница Поиск, карта сайта Написать письмо