![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблемма с SQL запросом. [D7, Paradox]
alpine © (2005-10-05 13:57:00)Делаю запрос
Select T.KOD,T.FULLNAME,T.GRUP,T.EDIZM,T.SEASON,T.COUNTRY,T.ORGIN,T.PIC,T.CZrub,T.CZye,T.NAZENKA,T.KURS,T.OLDCZrub,T.DATAOLDCZ, T.REALIS,T.CP1rub, T.CP1ye,T.OLDCP1rub,T.DATAOLDCP1,T.CP2rub,T.CP2ye,T.NAZENKA2,T.CP3rub,T.CP3ye,T.NAZENKA3,T.SERTIFICATE,T.GTD,T.GUARANTEE ,T.DOP,T.INFO,Z.KOLICHESTVO,Z.ID_SCHETA,Z.NUM_SCHETA,Z.OTKUDA,Z.KUDA,Z.DATA,Z.NOTE,Z.SUMMA,SUM(Z.KOLICHESTVO) from "tovar.db" T, "Zakupka.db" Z Where Z.KOD=T.KOD AND Z.ID_SCHETA='+DMFrm.ZAKUPKAQUERY.FieldByName('ID_SCHETA').AsString+'GROUP BY T.KOD,T.FULLNAME,T.GRUP,T.EDIZM,T.SEASON,T.COUNTRY,T.ORGIN,T.PIC,T.CZrub,T.CZye,T.NAZENKA,T.KURS,T.OLDCZrub,T.DATAOLDCZ, T.REALIS,T.CP1rub, T.CP1ye,T.OLDCP1rub,T.DATAOLDCP1, T.CP2rub,T.CP2ye,T.NAZENKA2,T.CP3rub,T.CP3ye,T.NAZENKA3,T.SERTIFICATE,T.GTD,T.GUARANTEE,T.DOP,T.INFO,Z.KOLICHESTVO,Z.ID_ SCHETA,Z.NUM_SCHETA,Z.OTKUDA,Z.KUDA,Z.DATA,Z.NOTE,Z.SUMMA'
Выводит всё нормально, а вот SUM(Z.KOLICHESTVO) не работает ! То есть не подсчитывает одинаковый товар во все базе. ПОМОГИТЕ !
evvcom (2005-10-06 08:58:00) [1]
> Не выводит все записи с таблицы ТОВАР !
И не выведет. Вот этот фильтр:
> Where Z.ID_SCHETA='+DMFrm.ZAKUPKAQUERY.FieldByName('ID_SCHETA').
> AsString
их отсеивает. Ты уж определись, надо все записи или все же надо их фильтровать.
alpine (2005-10-05 18:07:00) [2]2 msguns
Это не моё было .. Я доделываю программу .. Меня сказали ничего не надо !
Я её и так и сяк, но она зараза не выводит так, как надо .. Не выводит все записи с таблицы ТОВАР !
ANB (2005-10-05 17:38:00) [3]
> alpine (05.10.05 16:41) [11]
- записей вообще нету или не все ? Или не работает группировка ?
Если 1, то плохая связка (коды не равны), если 2 - то объясни, что лежит в закупках. Имхо, поля закупок в Group By тебе все ломают. И логика непонятна - зачем тебе выводить поля из закупок, если ты суммируешь количество по товару.
msguns (2005-10-05 17:37:00) [4]Вот здесь
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1128259959&n=1
тебе ведь все было понятно.
К указанной схеме надо просто добавить агрегаты
Сколько можно своего монстера показывать - народ же со страху поразбегается ;))
А вообще привыкай для описания траблы использовать схемы с несколькими простыми полями, ибо совершенно нечитабельно и прежде чем разобраться в сути, надо как по углям пршагать по всем товом KOLICHECTV`ам ;))
Sergey13 (2005-10-05 17:00:00) [5]Попробуй хоть как-то форматировать свои запросы. Это не только читаемость улучшает, но и мысли иногда в порядок приводит. И ошибки еще, которые уже якобы исправили ([3]), переписывать заново не следует.
alpine (2005-10-05 16:41:00) [6]сделала так
Select T.KOD,T.FULLNAME,T.GRUP,T.EDIZM,T.SEASON,T.COUNTRY,T.ORGIN,T.PIC,T.CZrub,T.CZye,T.NAZENKA,T.KURS,T.OLDCZrub,T.DATAOLDCZ, T.REALIS,T.CP1rub, T.CP1ye,T.OLDCP1rub,T.DATAOLDCP1,T.CP2rub,T.CP2ye,T.NAZENKA2,T.CP3rub,T.CP3ye,T.NAZENKA3,T.SERTIFICATE,T.GTD,T.GUARANTEE ,T.DOP,T.INFO,Z.KOLICHESTVO,Z.ID_SCHETA,Z.NUM_SCHETA,Z.OTKUDA,Z.KUDA,Z.DATA,Z.NOTE,Z.SUMMA,SUM(Z.KOLICHESTVO) from "tovar.db" T LEFT JOIN "Zakupka.db" Z ON (Z.KOD=T.KOD) Where Z.ID_SCHETA='+DMFrm.ZAKUPKAQUERY.FieldByName('ID_SCHETA').AsString+'GROUP BY T.KOD,T.FULLNAME,T.GRUP,T.EDIZM,T.SEASON,T.COUNTRY,T.ORGIN,T.PIC,T.CZrub,T.CZye,T.NAZENKA,T.KURS,T.OLDCZrub,T.DATAOLDCZ, T.REALIS,T.CP1rub, T.CP1ye,T.OLDCP1rub,T.DATAOLDCP1, T.CP2rub,T.CP2ye,T.NAZENKA2,T.CP3rub,T.CP3ye,T.NAZENKA3,T.SERTIFICATE,T.GTD,T.GUARANTEE,T.DOP,T.INFO,Z.KOLICHESTVO,Z.ID_ SCHETA,Z.NUM_SCHETA,Z.OTKUDA,Z.KUDA,Z.DATA,Z.NOTE,Z.SUMMA'
Всё равно не выводит все записи из таблиы ТОВАР
evvcom (2005-10-05 16:22:00) [7]select ...
from ТОВАР t
left join ЗАКУПКА z
on z.id=t.id
alpine (2005-10-05 16:16:00) [8]Покажите кто-нибудь на примере плиззз ...
Desdechado (2005-10-05 16:15:00) [9]> вывел все записи с таблицы ТОВАР, а не только те которые соответствуют с закупки
попробуй использовать UNION
evvcom (2005-10-05 16:05:00) [10]
> (не вижу агрегирования по sum)
Оно есть. С полосой прокрутки надо поиграться. А вообще реклама кое-что закрывает.
Sergey13 (2005-10-05 15:02:00) [11]2[4] alpine (05.10.05 14:59)
Про Join-ы смотри в справке.
msguns (2005-10-05 15:00:00) [12]Зубодробительный запрос ;)
А имена полей и таблиц !?
Повбывав бы
alpine (2005-10-05 14:59:00) [13]А нельзя сделать такой запрос , чтобы он вывел все записи с таблицы ТОВАР, а не только те которые соответствуют с закупки ? Чтоб и те и те были ...
alpine (2005-10-05 14:54:00) [14]2 Sergey13
В группировке учавствует поле Z.KOLICHESTVO по которому ты еще и сумму считаешь. Это фигня.
Вы правы !
Sergey13 (2005-10-05 14:27:00) [15]2 alpine (05.10.05 13:57)
Запрос неправильный. В группировке учавствует поле Z.KOLICHESTVO по которому ты еще и сумму считаешь. Это фигня. Странно, что вообще отрабатывает. И вообще из таблицы "Zakupka.db" Z не должно быть столько полей. У них же практически всегда разная комбинация значений.
ANB (2005-10-05 14:17:00) [16]
> alpine (05.10.05 13:57)
1. Убери +DMFrm.ZAKUPKAQUERY.FieldByName('ID_SCHETA').AsString+ (замени на параметр)
2. Запрос не корректно запостен (не вижу агрегирования по sum)
3. Не считает из-за набора полей в group by, какое то поле мешает (разное при одинаковом товаре)