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

Вниз

TRxQuery   Найти похожие ветки 

 
Jaxtor   (2003-06-26 10:45) [0]

Запрос выполняется(при установке свойства Active=true во время
Design mode):

select cast (Stock as Varchar(63)) as VENSTGR,
cast(NULL AS Integer) as PRODUCTID,
cast(NULL AS Integer) as VENSTGRID,
cast(NULL AS Varchar(63)) as PN,
cast(NULL AS Varchar(255)) as PRODUCT,
cast(NULL AS Varchar(63)) as COMMENT,
si.quantity as STOCK,
cast(NULL AS Integer) as FORSALE,
cast(NULL AS Integer) as TRANZIT1,
cast(NULL AS Integer) as TRANZIT2,
cast(NULL AS Integer) as TRANZIT3,
cast(NULL AS Integer) as TRANZIT4,
cast(NULL AS Double Precision) as PRICE,
cast(NULL AS Double Precision) as OLDPRICE,
cast(NULL AS TimeStamp) as PRICEUPDATEDATE,
cast(NULL AS TimeStamp) as DATA
from Stock s,stockitem si where (s.stockid=(select stockid from stockitem where saveprod_atrid=
(select Saveprod_atrid from savepr_atr where SaveProdID=
(select SaveProdID from saveprod where PN like "%3c%"))))
and (si.stockitemid=(select stockitemid from stockitem where saveprod_atrid=
(select Saveprod_atrid from savepr_atr where SaveProdID=
(select SaveProdID from saveprod where PN like "%3c%" ))))
union all
select gr.VenStGr, st.productid, st.venstgrid, st.PN,st.Product,st.comment, st.stock, st.forsale,st.tranzit1,st.tranzit2,st.tranzit3,st.tranzit4,st.price,st.oldprice,st.priceupdatedate,gr.data from VENSTOCK st,VENSTGR gr
where st.VenStGrId=gr.VenStGrId
%cond
order by 7 desc,
9 desc,
10 desc,
11 desc,
12 desc


Запрос не выполняется(при установке свойства Active=true во время Design mode):

select cast (Stock as Varchar(63)) as VENSTGR,
cast(NULL AS Integer) as PRODUCTID,
cast(NULL AS Integer) as VENSTGRID,
cast(NULL AS Varchar(63)) as PN,
cast(NULL AS Varchar(255)) as PRODUCT,
cast(NULL AS Varchar(63)) as COMMENT,
si.quantity as STOCK,
cast(NULL AS Integer) as FORSALE,
cast(NULL AS Integer) as TRANZIT1,
cast(NULL AS Integer) as TRANZIT2,
cast(NULL AS Integer) as TRANZIT3,
cast(NULL AS Integer) as TRANZIT4,
cast(NULL AS Double Precision) as PRICE,
cast(NULL AS Double Precision) as OLDPRICE,
cast(NULL AS TimeStamp) as PRICEUPDATEDATE,
cast(NULL AS TimeStamp) as DATA
from Stock s,stockitem si where (s.stockid=(select stockid from stockitem where saveprod_atrid=
(select Saveprod_atrid from savepr_atr where SaveProdID=
(select SaveProdID from saveprod %newcond))))
and (si.stockitemid=(select stockitemid from stockitem where saveprod_atrid=
(select Saveprod_atrid from savepr_atr where SaveProdID=
(select SaveProdID from saveprod %newcond))))
union all
select gr.VenStGr, st.productid, st.venstgrid, st.PN,st.Product,st.comment, st.stock, st.forsale,st.tranzit1,st.tranzit2,st.tranzit3,st.tranzit4,st.price,st.oldprice,st.priceupdatedate,gr.data from VENSTOCK st,VENSTGR gr
where st.VenStGrId=gr.VenStGrId
%cond
order by 7 desc,
9 desc,
10 desc,
11 desc,
12 desc


Ошибка: multiple rows in singleton select. Почему такое происходит?


 
Zacho   (2003-06-26 10:48) [1]

Потому что в макросе %newcond у тебя находится условие, при котором select SaveProdID from saveprod %newcond возвращает несколько записей. А должен только одну.


 
Jaxtor   (2003-06-26 10:50) [2]

>Zacho У меня во время выполнения программы задается условие newcond! А не во время проектирования!!


 
Zacho   (2003-06-26 10:53) [3]


> Jaxtor © (26.06.03 10:50)

Ну и что тогда должен вернуть такой запрос в design time ?


 
Jaxtor   (2003-06-26 10:54) [4]

>Zacho © (26.06.03 10:53)
Active должно быть равным true в design time.


 
Johnmen   (2003-06-26 10:56) [5]

>Jaxtor © (26.06.03 10:50)

Как задается ?


 
Jaxtor   (2003-06-26 10:59) [6]

>Johnmen © (26.06.03 10:56)
А я думаю, что для Design time не важно, как задается %newcond.
Или я не прав?


 
Zacho   (2003-06-26 11:03) [7]


> Jaxtor © (26.06.03 10:54)

Нафига ? Но если сильно надо, то тогда и макрос надо задавать тоже в design time, иначе запрос получается неправильный.


 
Jaxtor   (2003-06-26 11:06) [8]

Почему же тогда этот запрос выполняется в Design time:?

select cast (Stock as Varchar(63)) as VENSTGR,
cast(NULL AS Integer) as PRODUCTID,
cast(NULL AS Integer) as VENSTGRID,
cast(NULL AS Varchar(63)) as PN,
cast(NULL AS Varchar(255)) as PRODUCT,
cast(NULL AS Varchar(63)) as COMMENT,
si.quantity as STOCK,
cast(NULL AS Integer) as FORSALE,
cast(NULL AS Integer) as TRANZIT1,
cast(NULL AS Integer) as TRANZIT2,
cast(NULL AS Integer) as TRANZIT3,
cast(NULL AS Integer) as TRANZIT4,
cast(NULL AS Double Precision) as PRICE,
cast(NULL AS Double Precision) as OLDPRICE,
cast(NULL AS TimeStamp) as PRICEUPDATEDATE,
cast(NULL AS TimeStamp) as DATA
from Stock s,stockitem si where (s.stockid=(select stockid from stockitem where saveprod_atrid=
(select Saveprod_atrid from savepr_atr where SaveProdID=
(select SaveProdID from saveprod where PN like "%3c%"))))
and (si.stockitemid=(select stockitemid from stockitem where saveprod_atrid=
(select Saveprod_atrid from savepr_atr where SaveProdID=
(select SaveProdID from saveprod where PN like "%3c%" ))))
union all
select gr.VenStGr, st.productid, st.venstgrid, st.PN,st.Product,st.comment, st.stock, st.forsale,st.tranzit1,st.tranzit2,st.tranzit3,st.tranzit4,st.price,st.oldprice,st.priceupdatedate,gr.data from VENSTOCK st,VENSTGR gr
where st.VenStGrId=gr.VenStGrId

%cond

order by 7 desc,
9 desc,
10 desc,
11 desc,
12 desc


 
Zacho   (2003-06-26 11:06) [9]


> Jaxtor © (26.06.03 10:59)

Не прав. Какая разница, run time или design time ? Тебе надо выполнить запрос, и синтаксис запроса должен быть верный.
P.S. Как-то этот запрос слишком монстроидально выглядит, уверен что вместьо многочисленных вложенных селектов можно сделать join, и работать это будет быстрее.


 
Zacho   (2003-06-26 11:09) [10]


> Jaxtor © (26.06.03 11:06)

Потому что select SaveProdID from saveprod where PN like "%3c%" возвращает одну запись, как и надо (вероятно случайно, пересмотри логику работы запроса, если он вернет больше одной записи, то получишь ту же ошибку)
А если where отсутствует - получаешь набор записей, и в результате - ошибку.


 
Johnmen   (2003-06-26 11:10) [11]

Jaxtor © (26.06.03 11:06)

Потому, что макрос cond="", и текст запроса верен.

>Zacho © (26.06.03 11:06)

Насчет монстроидальности - это верно...:)


 
Jaxtor   (2003-06-26 11:12) [12]

Ладно, спасибо!
Дали пищу для размышлений.


 
NDeu   (2003-06-26 13:01) [13]

Вместо

> ...id =(select ...

Пиши ...id in (select ...


 
Jaxtor   (2003-06-26 13:50) [14]

>NDeu © (26.06.03 13:01)
Ладно



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

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

Наверх




Память: 0.48 MB
Время: 0.162 c
3-67695
rosl
2003-06-27 07:42
2003.07.21
sql


1-67890
mao
2003-07-08 08:58
2003.07.21
Юникод


14-67990
copyr25
2003-07-03 21:58
2003.07.21
Просьба ко всем, кто разбирается


1-67907
adogg
2003-07-08 12:42
2003.07.21
StringGrid and Button


3-67741
Bless
2003-06-18 09:05
2003.07.21
LocalTable





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский