![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по SQL запросу [D6, Paradox]
alpine © (2005-10-02 17:32:00)Есть вде таблицы tovar.db и zakupka.db. Они связаны по полю KOD. Таблица товар используется при покупке товара, после покупки даные попадают в таблицу закупка (в таблице товар поля количесто, сумма обнуляются после покупки). Теперь мне нужно добавить поле наличие в грид товара, которое соответственно равна сумме количества в закупке. Делаю такой sql запрос
'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,T.KOLICHESTVO,T.SUMMA,SUM(Z.KOLICHESTVO) from "tovar.db" T, "Zakupka.db" Z Where T.Deleted=false AND Z.Deleted=false AND T.KOD like Z.KOD ' 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,T.KOLICHESTVO,T.SUM MA'
Всё вроде работает нормально, но мне нужно чтоб он выдавал из таблицы tovar.db все записи а он выдаёт только те которые были закуплены (zakupka.db)
alpine (2005-10-02 19:58:00) [1]ОГРОМНОЕ СПАСИБО!
msguns (2005-10-02 19:26:00) [2]Не туда всобачил ;)
Схема запроса:
SELECT 1.F1,1.F2,..,2.F1,2.F2..
FROM TABLE1 1 LEFT JOIN TABLE2 2 ON (1.ID=2.ID)
WHERE NOT 1.DELETED AND NOT 2.DELETED
alpine (2005-10-02 19:22:00) [3]Поле DELETED это признак того, что товар удален/не удален.
Сделал вот так ...
'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,T.KOLICHESTVO,T.SUMMA,SUM(Z.KOLICHESTVO) from "tovar.db" T LEFT JOIN "Zakupka.db" Z ON T.Deleted=falseAND Z.Deleted=falseAND T.KOD=Z.KOD 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,T.KOLICHESTVO,T.SUM MA'
А появляются в результате и удалённые записи хотя T.Deleted=falseAND Z.Deleted=false
msguns (2005-10-02 19:11:00) [4]1. Есть подозрение, БД спроектирована чисто по-любительски, ибо не видно в упор объектов типа "Документ" и имеется поле DELETED непонятного происхождения и назначения.
2. Если все ж таки это поле типа признак того, что товар удален/не удален (хотя єто делается отнюдь не так), то что мешает встромить в условие выборки проверку єтого поля ?
alpine (2005-10-02 18:34:00) [5]2 msguns
Огромное спасибо за отзыв !
Да записи все появляются .. Но теперь такая проблемма , появляются и удалённые записи, то есть те записи у которых поле DELETED=TRUE ... Как быть ?
msguns (2005-10-02 18:17:00) [6]Вместо Where используй Left Join On ..