Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.038 c
2-1128037519
TechnoDreamer
2005-09-30 03:45
2005.10.30
Помогите составить запрос


1-1128704698
Kostafey
2005-10-07 21:04
2005.10.30
Преобразование типа pointer в указатель метода.


14-1128700447
ArtemESC
2005-10-07 19:54
2005.10.30
Алгоритм возведения числа в произвольную степень


2-1128807411
ArtemESC
2005-10-09 01:36
2005.10.30
Буфер обмена


14-1128596863
!Trinix
2005-10-06 15:07
2005.10.30
Задача по информатике





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