Форум: "Начинающим";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];
ВнизПроблемма с SQL запросом. Найти похожие ветки
← →
alpine (2005-10-05 13:57) [0]Делаю запрос
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) не работает ! То есть не подсчитывает одинаковый товар во все базе. ПОМОГИТЕ !
← →
ANB © (2005-10-05 14:17) [1]
> alpine (05.10.05 13:57)
1. Убери +DMFrm.ZAKUPKAQUERY.FieldByName("ID_SCHETA").AsString+ (замени на параметр)
2. Запрос не корректно запостен (не вижу агрегирования по sum)
3. Не считает из-за набора полей в group by, какое то поле мешает (разное при одинаковом товаре)
← →
Sergey13 © (2005-10-05 14:27) [2]2 alpine (05.10.05 13:57)
Запрос неправильный. В группировке учавствует поле Z.KOLICHESTVO по которому ты еще и сумму считаешь. Это фигня. Странно, что вообще отрабатывает. И вообще из таблицы "Zakupka.db" Z не должно быть столько полей. У них же практически всегда разная комбинация значений.
← →
alpine (2005-10-05 14:54) [3]2 Sergey13
В группировке учавствует поле Z.KOLICHESTVO по которому ты еще и сумму считаешь. Это фигня.
Вы правы !
← →
alpine (2005-10-05 14:59) [4]А нельзя сделать такой запрос , чтобы он вывел все записи с таблицы ТОВАР, а не только те которые соответствуют с закупки ? Чтоб и те и те были ...
← →
msguns © (2005-10-05 15:00) [5]Зубодробительный запрос ;)
А имена полей и таблиц !?
Повбывав бы
← →
Sergey13 © (2005-10-05 15:02) [6]2[4] alpine (05.10.05 14:59)
Про Join-ы смотри в справке.
← →
evvcom © (2005-10-05 16:05) [7]
> (не вижу агрегирования по sum)
Оно есть. С полосой прокрутки надо поиграться. А вообще реклама кое-что закрывает.
← →
Desdechado © (2005-10-05 16:15) [8]> вывел все записи с таблицы ТОВАР, а не только те которые соответствуют с закупки
попробуй использовать UNION
← →
alpine (2005-10-05 16:16) [9]Покажите кто-нибудь на примере плиззз ...
← →
evvcom © (2005-10-05 16:22) [10]select ...
from ТОВАР t
left join ЗАКУПКА z
on z.id=t.id
← →
alpine (2005-10-05 16:41) [11]сделала так
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"
Всё равно не выводит все записи из таблиы ТОВАР
← →
Sergey13 © (2005-10-05 17:00) [12]Попробуй хоть как-то форматировать свои запросы. Это не только читаемость улучшает, но и мысли иногда в порядок приводит. И ошибки еще, которые уже якобы исправили ([3]), переписывать заново не следует.
← →
msguns © (2005-10-05 17:37) [13]Вот здесь
http://delphimaster.net/view/3-1128259959/
тебе ведь все было понятно.
К указанной схеме надо просто добавить агрегаты
Сколько можно своего монстера показывать - народ же со страху поразбегается ;))
А вообще привыкай для описания траблы использовать схемы с несколькими простыми полями, ибо совершенно нечитабельно и прежде чем разобраться в сути, надо как по углям пршагать по всем товом KOLICHECTV`ам ;))
← →
ANB © (2005-10-05 17:38) [14]
> alpine (05.10.05 16:41) [11]
- записей вообще нету или не все ? Или не работает группировка ?
Если 1, то плохая связка (коды не равны), если 2 - то объясни, что лежит в закупках. Имхо, поля закупок в Group By тебе все ломают. И логика непонятна - зачем тебе выводить поля из закупок, если ты суммируешь количество по товару.
← →
alpine (2005-10-05 18:07) [15]2 msguns
Это не моё было .. Я доделываю программу .. Меня сказали ничего не надо !
Я её и так и сяк, но она зараза не выводит так, как надо .. Не выводит все записи с таблицы ТОВАР !
← →
evvcom © (2005-10-06 08:58) [16]
> Не выводит все записи с таблицы ТОВАР !
И не выведет. Вот этот фильтр:
> Where Z.ID_SCHETA="+DMFrm.ZAKUPKAQUERY.FieldByName("ID_SCHETA").
> AsString
их отсеивает. Ты уж определись, надо все записи или все же надо их фильтровать.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.034 c