Вопрос по запросу в SQL

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Ruslan_V
Посетитель
Сообщения: 45
Зарегистрирован: 01 июн 2009, 17:11

Вопрос по запросу в SQL

Сообщение Ruslan_V »

Добрый день. Задача состоит в том, чтобы выбрать все приходы от контрагентов с учетом счетов, субсчетов дебита/кредита. Написали запрос в SQL, но почему-то выгружаются задвоенные записи:

select oborot.dbscheto, oborot.krschetk, katmc.name, katmc.cenamc, katsopr.nsopr, sporder.kol
from oborot, katmc, katsopr, sporder, soprhoz, spsopr
where ((Date(2,3,2010)==katsopr.dopr and
katsopr.nrec==spsopr.csopr and
spsopr.nrec==sporder.cspsopr and
word(101)==soprhoz.tidkgal and
katsopr.nrec==soprhoz.csoprdoc and
soprhoz.nrec==oborot.csoprhoz and
oborot.kauos[4]==katmc.nrec
));

В чем тут загвоздка? Или подскажите, пожалуйста, как вообще решить такую задачу, никогда еще с проводками не работали.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

потому как spsopr, sporder никак не завязаны с oborot
а не проще ли их вообще убрать из запроса, а кол-во взять из oborot?
Иван
Местный житель
Сообщения: 200
Зарегистрирован: 28 апр 2009, 13:19
Откуда: Новороссийск

Сообщение Иван »

у тебя же у каждого документа может быть несколько проводок
и еще в запросе не мешало бы поставить условие у oborot.TBLOS[4] = номер аналитики МЦ
tolctiy
Посетитель
Сообщения: 47
Зарегистрирован: 07 дек 2009, 12:46

Сообщение tolctiy »

edward_K
потому как spsopr, sporder никак не завязаны с oborot
а не проще ли их вообще убрать из запроса, а кол-во взять из oborot?

Вопрос:
Как из таблици spstep вытянуть цену поставщика? Если не учитывать эти таблици: spsopr, sporder.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

1.в вашем запросе сего нет.
2.ну по крайней мере тогда нужно еще наложить условие spsopr.cmcusl == oborot.kauos[4] - но это вас не спасет, если будет несколько позиций с одной МЦ, хотя если они в oborot вдруг собьются, то все будет нормально. В идеале у вас в oborot должен быть точный признак, что это относится именно к этой позиции. Иначе дорога в программирование или значительное усложнение запроса(отсекание по синониму дубликатов, вложенный запрос или DSQL например). Для начала oborot.nrec выведите - поймете о чем речь.
Последний раз редактировалось edward_K 04 мар 2010, 21:03, всего редактировалось 1 раз.
KATZ
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49

Re: Вопрос по запросу в SQL

Сообщение KATZ »

Ruslan_V писал(а):Написали запрос в SQL, но почему-то выгружаются задвоенные записи
В вашем запросе нет фильтра по планам счетов. Может, эти задвоенные записи из разных ПС?
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Сообщение Masygreen »

как это обычно делается ..
последовательно добавлеете в запрос таблицы .. и ограничения . и сразу увидите что у вас двоится
потом в селект выводите только ту таблицу которую добавили последней и смотрите чем записи отличаются.. вот
Время ведет!
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

Опишите конкретно, что хотите получить, попробую накидать запрос...
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Ответить