:: Visual Foxpro, Foxpro for DOS
MAX в SQL
ama68

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
Create Cursor tmpData (dDate D, nSumma N (8, 2))
Insert Into tmpData (dDate D, nSumma) Value ({01.01.2019}, 865000)
Insert Into tmpData (dDate D, nSumma) Value ({01.01.2018}, 815000)
dpDate = Date (2019, 12, 31)
Select nSumma, Max (dDate) As dDate From Z_fsc Where dDate <= dpDate InTo cursor arTmp

выдаёт результат
815000 01.01.2019

а нужно
865000 01.01.2019

Как так?
Ratings: 0 negative/0 positive
Re: MAX в SQL
Burn

Сообщений: 5640
Откуда: Днепр
Дата регистрации: 02.01.2002
Cursor tmpData и From Z_fsc описка?
Ratings: 0 negative/0 positive
Re: MAX в SQL
ama68

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
конечно!
from tmpData
Ratings: 0 negative/0 positive
Re: MAX в SQL
AndyNigmatec

Сообщений: 1552
Откуда: Волгоград
Дата регистрации: 28.06.2015
Честно говоря не вижу проблемы ...

Create Cursor tmpData (dDate D, nSumma N (8, 2))
Insert Into tmpData (dDate, nSumma) Value ({^2019.01.01}, 865000)
Insert Into tmpData (dDate, nSumma) Value ({^2018.01.01}, 815000)
dpDate = Date (2019, 12, 31)
Select nSumma, Max(dDate) As dDate From tmpdata Where dDate <= dpDate GROUP BY nSumma



Исправлено 1 раз(а). Последнее : AndyNigmatec, 27.08.20 12:02
Ratings: 0 negative/0 positive
Re: MAX в SQL
AndyNigmatec

Сообщений: 1552
Откуда: Волгоград
Дата регистрации: 28.06.2015
Только не совсем понятен именно так построенный запрос - но мы не знаем задачи ...

как бы логичней смотрелось бы

SELECT ddate, SUM(nsumma) as nsumma FROM tmpData GROUP BY ddate ...
Ratings: 0 negative/0 positive
Re: MAX в SQL
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
AndyNigmatec
Select nSumma, Max(dDate) As dDate From tmpdata Where dDate <= dpDate GROUP BY nSumma
Вряд ли это то что нужно ТС

Тут вариант получить Max(dDate)
а потом по нему получить нужную nSumma
Не знаю как в фоксе с подзапросами
Ratings: 0 negative/0 positive
Re: MAX в SQL
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
Select nSumma, dDate As dDate From tmpData Where dDate = (select Max(dDate) from tmpData WHERE dpDate>= dpDate) InTo cursor arTmp


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/1 positive
Re: MAX в SQL
ama68

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
Серёж, спасибо! Помогло
Ratings: 0 negative/0 positive
Re: MAX в SQL
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
На всякий случай еще один вариант, может более понятный:
Select top 1 nSumma, dDate As dDate From tmpData Where dDate <= dpDate order by dDate desc InTo cursor arTmp


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/1 positive
Re: MAX в SQL
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
ssa
Select nSumma, dDate As dDate From tmpData Where dDate = (select Max(dDate) from tmpData WHERE dpDate>= dpDate) InTo cursor arTmp

А если без "WHERE dpDate>= dpDate" что-то изменится?
Ratings: 0 negative/0 positive
Re: MAX в SQL
PaulWist
Автор

Сообщений: 14601
Дата регистрации: 01.04.2004
Ydin
ssa
Select nSumma, dDate As dDate From tmpData Where dDate = (select Max(dDate) from tmpData WHERE dpDate>= dpDate) InTo cursor arTmp

А если без "WHERE dpDate>= dpDate" что-то изменится?

Опечатка явная.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 21 (Гостей: 21)

© 2000-2024 Fox Club 
Яндекс.Метрика