|
|
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Пишу запрос : SELECT [Order].[Code], [Order].[DateIn], [Customer].[Name], SUM([OrderPos].[StemsCount]) as SumStemsCount, SUM([OrderPos].[BoxCount]) as SumBoxCount FROM [Order], [OrderPos], [Customer] WHERE ([Shipment_Id]=10) AND ([Order].[Order_Id]=[OrderPos].[Order_Id]) AND ([Customer].[Customer_Id]=[Order].[Customer_Id]) ORDER BY [OrderPos].[PosNum] GROUP BY [Order].[Order_Id] А Access мине говорит : Попытка выполнить запрос, который не включает указанное выражение 'Code' как часть статической функции или группы. Чего за нафиг? И еще есть ли в Access функция возвращающая номер строки в запросе - в VFP это RecNo() Те как написать SELECT RecNo() As Number ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 15:39:05 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
И еще все поля есть в таблицах - проверял... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 15:40:08 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Имя таблицы "Order" - очень и очень не подходящее! Попробуй изменить его. Вообще, очень осторожно надо давать имена объектам. Стараться не использовать хранимые имена! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 15:48:11 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Так для этого и вскобках поставил [] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 15:57:16 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Петров Андрей ... А Access мине говорит : Попытка выполнить запрос, который не включает указанное выражение 'Code' как часть статической функции или группы. Чего за нафиг? ... Читайте Help: При использовании предложения GROUP BY все поля в списке полей инструкции SELECT должны быть либо включены в предложение GROUP BY, либо использоваться в качестве аргументов статистической функции SQL. авторИ еще есть ли в Access функция возвращающая номер строки в запросе - в VFP это RecNo() Нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:02:10 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Ну дык понятно же все. С полем Code что нужно делать? Если в группе оно в разных записях разное, то какое из значений показывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:03:54 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Чего то я не понял: 1) Включать все поля в группировку - это извините совсем нанадо :-) 2) Убирать их чегото совсем не хочется... 3) Делать через несколько запросов тем более... Может я чего не понимаю в SQL. Как сделать чтоб заработал запрос? Я в Access не особо :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:08:35 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Дык дело то все в том что оно ОДНО. Группируем то по первичному ключу Order_Id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:10:16 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Если оно одно, то можно сделать что угодно: либо добавить его в группировку, либо приписать к нему в качестве функции First. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:12:16 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Петров АндрейЧего то я не понял: 1) Включать все поля в группировку - это извините совсем нанадо :-) Не надо, уберите поле Петров Андрей 2) Убирать их чегото совсем не хочется... Надо - включите в группировку или используйте статистическую функцию Петров Андрей 3) Делать через несколько запросов тем более... Это не предлагалось Петров Андрей Может я чего не понимаю в SQL. Как сделать чтоб заработал запрос? Я в Access не особо :-( Я не знаю схемы данных, вы включили три таблицы и не показали никакого объединения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:20:32 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Оки добавил. Точнее заменил. А чего делать с другими полями? ([Order].[Date], [Customer].[Name]) SELECT [Order].[Code], SUM([OrderPos].[StemsCount]) as SumStemsCount, SUM([OrderPos].[BoxCount]) as SumBoxCount, [Order].[Date], [Customer].[Name] FROM [Order], [OrderPos], [Customer] WHERE ([Shipment_Id]=10) AND ([Order].[Order_Id]=[OrderPos].[Order_Id]) AND ([Customer].[Customer_Id]=[Order].[Customer_Id]) GROUP BY [Order].[Code] ORDER BY [Order].[Code] Может их тоже в группировку засунуть?! (риторический вопрос) Но уж очень это неестественно... И кстати как насчет RecNo? Неужто нету таковой? Неверю ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:22:13 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
2 Serge Gavrilov Включать в статистические функции мы не умеем :-) Ето как? С группировкой проходит :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:25:53 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Петров АндрейОки добавил. Точнее заменил. А чего делать с другими полями? ([Order].[Date], [Customer].[Name]) SELECT [Order].[Code], SUM([OrderPos].[StemsCount]) as SumStemsCount, SUM([OrderPos].[BoxCount]) as SumBoxCount, [Order].[Date], [Customer].[Name] FROM [Order], [OrderPos], [Customer] WHERE ([Shipment_Id]=10) AND ([Order].[Order_Id]=[OrderPos].[Order_Id]) AND ([Customer].[Customer_Id]=[Order].[Customer_Id]) GROUP BY [Order].[Code] ORDER BY [Order].[Code] Может их тоже в группировку засунуть?! (риторический вопрос) Но уж очень это неестественно... И кстати как насчет RecNo? Неужто нету таковой? Неверю ... Я же вам привел фразу из Help! А мне кажется неестественным, то как вы пытаетесь делать ... Надо просто делать как надо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:26:00 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
авторЯ не знаю схемы данных, вы включили три таблицы и не показали никакого объединения При всем уважении к Serge Gavrilov не могу согласиться FROM [Order], [OrderPos], [Customer] WHERE ([Shipment_Id]=10) AND ([Order].[Order_Id]=[OrderPos].[Order_Id]) AND ([Customer].[Customer_Id]=[Order].[Customer_Id]) хотя лучше делать конечно же через INNER JOIN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:28:10 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Схема простенькая... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:28:18 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Петров Андрей2 Serge Gavrilov Включать в статистические функции мы не умеем :-) Ето как? Sum же используете, другой пример привел ВС - First. Все они видны в конструкторе запросов.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:30:09 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
GROUP BY [Order].[Code], [Order].[DateIn], [Customer].[Name] и всех делов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:30:50 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
(c)VIG авторЯ не знаю схемы данных, вы включили три таблицы и не показали никакого объединения При всем уважении к Serge Gavrilov не могу согласиться FROM [Order], [OrderPos], [Customer] WHERE ([Shipment_Id]=10) AND ([Order].[Order_Id]=[OrderPos].[Order_Id]) AND ([Customer].[Customer_Id]=[Order].[Customer_Id]) хотя лучше делать конечно же через INNER JOIN да я видел, просто вредничал ...:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:33:37 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Так ребяты - давайте не ссориться. Вопрос был не по тому как делать (Join vs Where) а по тому почему не работает запрос... Уж извините привычка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:35:15 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
авторда я видел, просто вредничал ...:) Тоди-ой! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:35:49 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
GROUP BY [Order].[Code], [Order].[DateIn], [Customer].[Name] Да так и сделал. Просто коробит от группировки по 3 полям - когда нужна реально по одному... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:36:59 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Петров АндрейТак ребяты - давайте не ссориться. Вопрос был не по тому как делать (Join vs Where) а по тому почему не работает запрос... Уж извините привычка... дык, ведь работает с Group By или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:38:49 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:42:41 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
авторПросто коробит от группировки по 3 полям - когда нужна реально по одному Пиши жалобу авторам стандарта :) , или переделывай запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:46:04 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Пасибо... Вроде разобрался. Вариант с First наверное лучше... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 16:46:48 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
2 Владимир Саныч А как ето все запихать в ЭТОТ запрос? :-) SELECT (SELECT SUM(1) FROM [Order] AS p WHERE p.Order_Id<=[Order].[Order_Id]) as PosNum, Order.Code, Sum(OrderPos.StemsCount) AS SumStemsCount, Sum(OrderPos.BoxCount) AS SumBoxCount, First(Order.DateIn), First(Customer.Name) FROM [Order], OrderPos, Customer WHERE (((Order.Shipment_id)=10) AND ((Order.Order_id)=[OrderPos].[Order_Id]) AND ((Customer.Customer_id)=[Order].[Customer_Id])) GROUP BY Order.Code ORDER BY Order.Code; Access не понимает номера вместо полей аля group by 1 SELECT DCount("[Order_Id]", "[Order]","[Order_Id]<=" & CStr([Order].[Order_Id])) as PosNum, Order.Code, Sum(OrderPos.StemsCount) AS SumStemsCount, Sum(OrderPos.BoxCount) AS SumBoxCount, First(Order.DateIn), First(Customer.Name) FROM [Order], OrderPos, Customer WHERE (((Order.Shipment_id)=10) AND ((Order.Order_id)=[OrderPos].[Order_Id]) AND ((Customer.Customer_id)=[Order].[Customer_Id])) GROUP BY Order.Code, 1 ORDER BY Order.Code; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 17:04:37 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Сорри, не понял. Кого запихать в куда? Вместо номеров полей Аксесс понимает имена. Если поле с алиасом, то в качестве имени надо брать всю формулу, которая перед AS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 17:08:19 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Вместо номеров полей Аксесс понимает имена. - Это я заметил (Group By PosNum) :-( Если поле с алиасом, то в качестве имени надо брать всю формулу, которая перед AS. Хм. Лагуче и выдает 11 вместо 1 :-( Вариант 2 из приведенных выше... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 17:13:41 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Ладно вобщем все ясно... Всем спасибо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 17:27:47 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Петров АндрейЛагуче и выдает 11 вместо 1 :-( Хто такое Лагуче? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 17:53:10 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч Петров АндрейЛагуче и выдает 11 вместо 1 :-( Хто такое Лагуче? Однофамилец Версаче :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 18:00:24 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Лагуче - от Lag - задержка что означает Медленно :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 18:18:07 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
Теперь осталось понять, кто выдает 11... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 18:42:46 |
|
||
|
Вопрос - не работает запрос
|
|||
|---|---|---|---|
|
#18+
SELECT DCount("[Order_Id]", "[Order]","[Order_Id]<=" & CStr([Order].[Order_Id])) as PosNum, Order.Code, Sum(OrderPos.StemsCount) AS SumStemsCount, Sum(OrderPos.BoxCount) AS SumBoxCount, First(Order.DateIn), First(Customer.Name) FROM [Order], OrderPos, Customer WHERE (((Order.Shipment_id)=10) AND ((Order.Order_id)=[OrderPos].[Order_Id]) AND ((Customer.Customer_id)=[Order].[Customer_Id])) GROUP BY Order.Code, DCount("[Order_Id]", "[Order]","[Order_Id]<=" & CStr([Order].[Order_Id])) ORDER BY Order.Code; Хм... наверное 1-ое поле. :-) О нем вроде половина разговора... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2004, 19:04:45 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1671696]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 346ms |

| 0 / 0 |
