Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Помогите найти ошибка - кроме головы? =)   Найти похожие ветки 

 
Владий ©   (2004-03-02 11:12) [0]

Есть следующий код:

SELECT Payments.*, LastCoursEUR.Cours*Payments.Sum AS SumPlanRub, Polices.*
FROM Polices INNER JOIN (LastCoursEUR INNER JOIN Payments ON LastCoursEUR.Val=Payments.Val) ON Polices.P_Num=Payments.Police
WHERE ((Payments.Val)="EUR") And (Payments.Payed =0) And (Payments.Date<Now())
Union
SELECT Payments.*, LastCoursUSD.Cours*Payments.Sum AS SumPlanRub, Polices.*
FROM Polices INNER JOIN (LastCoursUSD INNER JOIN Payments ON LastCoursUSD.Val=Payments.Val) ON Polices.P_Num=Payments.Police
WHERE ((Payments.Val)="EUR") And (Payments.Payed =0) And (Payments.Date<Now())
UNION
SELECT Payments.*, Payments.Sum AS SumPlanRub, Polices.*
FROM Polices INNER JOIN Payments ON Polices.P_Num=Payments.Police
WHERE ((Payments.Val)="EUR") And (Payments.Payed =0) And (Payments.Date<Now());

Не работает, зараза... Причем, подозреваю, что из-за
"(Payments.Date<Now())" - такие записи точно есть, хотя может в написании ошибся? Но на ошибки ругани нет...

Хорошей Удачи!
Владий // ICQ: 47659886


 
Reindeer Moss Eater ©   (2004-03-02 11:17) [1]

Надо верить движку.
Нет записей в выборке - значит нет их.


 
Владий ©   (2004-03-02 11:23) [2]

Есть, в том-то и дело... 100% есть запись от 29.01.2004, сегодня - 02.03.04 => должно быть, а нету...

Хорошей Удачи!
Владий // ICQ: 47659886


 
sniknik ©   (2004-03-02 11:23) [3]

> такие записи точно есть
в одной таблице может быть, но в сумме условие не сходится, их (условий) у тебя довольно много, двойное обьеденение, тем более с INNER, что значит если хоть по одной таблице подходяших записей нет то нет их и в общем.
а Now правильно.


 
Johnmen ©   (2004-03-02 11:28) [4]

А так ?
SELECT Payments.*, LastCoursEUR.Cours*Payments.Sum AS SumPlanRub, Polices.*
FROM Payments
JOIN Polices ON Polices.P_Num=Payments.Police
JOIN LastCoursEUR ON LastCoursEUR.Val=Payments.Val
WHERE (Payments.Val="EUR") And (Payments.Payed =0) And (Payments.Date<Now())
UNION
SELECT Payments.*, LastCoursUSD.Cours*Payments.Sum AS SumPlanRub, Polices.*
FROM Payments
JOIN Polices ON Polices.P_Num=Payments.Police
JOIN LastCoursUSD ON LastCoursUSD.Val=Payments.Val
WHERE (Payments.Val="EUR") And (Payments.Payed =0) And (Payments.Date<Now())
UNION
SELECT Payments.*, Payments.Sum AS SumPlanRub, Polices.*
FROM Payments
JOIN Polices ON Polices.P_Num=Payments.Police
WHERE (Payments.Val="EUR") And (Payments.Payed =0) And (Payments.Date<Now())


 
sniknik ©   (2004-03-02 11:43) [5]

Johnmen ©   (02.03.04 11:28) [4]
а так в access работать не будет (join не вложенный, он не понимает), тогда уж лутше просто в условии равенство указать (неявный джойн сделать)


 
Reindeer Moss Eater ©   (2004-03-02 11:47) [6]

В каждом из запросов 3 условия по AND

Последовательно убираем по одному и начинаем видеть какое именно приводит к пустой выборке.


 
sniknik ©   (2004-03-02 11:54) [7]

Reindeer Moss Eater ©   (02.03.04 11:47) [6]
вместе с джойнами 5 AND.


 
Владий ©   (2004-03-02 11:56) [8]

Спасибо за ответы - не нашел что приводило к пустой выборке - но заработало... видимо опять где-то пробел пропустил...



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

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.035 c
14-1078512108
TButton
2004-03-05 21:41
2004.04.04
В порядке ознакомления


14-1078828017
}|{yk
2004-03-09 13:26
2004.04.04
Насколько криптостоек такой вариант шифрования?


8-1070004089
user
2003-11-28 10:21
2004.04.04
Как удалить определенное кол-во секунд из .wav файла


14-1078675942
Натуся
2004-03-07 19:12
2004.04.04
Проблемы с Linux


1-1079465653
Destroyer
2004-03-16 22:34
2004.04.04
Поиск Edit-а на форме