Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];

Вниз

Запрос SQL   Найти похожие ветки 

 
saf   (2002-04-03 10:46) [0]

Хочу объединить таблицы для статистики.
Делаю так:
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"
Поьогите разобраться, пожалуйста!!!!


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

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

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


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

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


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

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


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

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


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

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


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

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


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

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

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


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

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


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

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


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

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


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

по красоте запрос выглядит прилично!.. но попробуй так.. мб поможет
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


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

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


 
saf   (2002-04-04 19:40) [13]

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



 
saf   (2002-04-04 19:53) [14]

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



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

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


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

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

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

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

Удачи.


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

1



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
3-80748
B_A_V
2002-04-04 08:06
2002.04.25
тип datetime


14-81084
snoup
2002-03-18 22:09
2002.04.25
Как написать простую звонилку которая бы просто звонила по номеру и проводила нужную аутенфикацию и соединялась с инетом ?


3-80777
Sewix
2002-04-04 12:05
2002.04.25
Б Д не работает на другом компе


3-80814
Бульбаш
2002-04-05 13:15
2002.04.25
Блокировки в ODAC


1-80919
Ascan
2002-04-15 10:39
2002.04.25
Как перехватить функцию <b>GetCursorPos()</b>





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский