Главная страница
    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.034 c
14-1128720387
Kerk
2005-10-08 01:26
2005.10.30
Китайский спам


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


14-1128690438
fran
2005-10-07 17:07
2005.10.30
off top: Есть ли дефрагментатор диска NTFS с кластером 8к?


14-1128701922
X9
2005-10-07 20:18
2005.10.30
Вопрос знатокам XML (и Delph :) )


2-1128843624
Proxytel
2005-10-09 11:40
2005.10.30
TStringGrid - поставить выделение





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