Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите подправить запрос 
:(
    Опции темы
Gregoryy
  Дата 6.10.2007, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 6.10.2007

Репутация: нет
Всего: 1



Есть Views. Структура запроса вот такая
Код

SELECT     dbo.INSTEX_SKLAD.ID, dbo.INSTEX_SKLAD.SKLADID, dbo.INSTEX_SKLAD.MATERIALID, dbo.INSTEX_SKLAD.AMOUNT, 
                      dbo.INSTEX_SKLAD.AMOUNTTYPEID, dbo.INSTEX_SKLAD.DATE, dbo.INSTEX_MATERIAL.ID AS Expr1, dbo.INSTEX_MATERIAL.TYPEIDMATERIAL, 
                      dbo.INSTEX_MATERIAL.VIDIDMATERIAL, dbo.INSTEX_MATERIAL.COUNTRIEID, dbo.INSTEX_MATERIAL.BIRTHPLACEID, 
                      dbo.INSTEX_MATERIAL.TYPETREATMENTID, dbo.INSTEX_MATERIAL.SIZEMATERIAL, dbo.INSTEX_MATERIAL.COLOR, dbo.INSTEX_MATERIAL.OPIS, 
                      dbo.INSTEX_MATERIAL.CENA, dbo.INSTEX_MATERIAL_AMOUNTTYPE.ID AS Expr2, dbo.INSTEX_MATERIAL_AMOUNTTYPE.NAME, 
                      dbo.INSTEX_COUNTRIES.ID AS Expr3, dbo.INSTEX_COUNTRIES.NAME AS Expr4, dbo.INSTEX_MATERIAL_BIRTHPLACEID.ID AS Expr5, 
                      dbo.INSTEX_MATERIAL_BIRTHPLACEID.NAME AS Expr6, dbo.INSTEX_MATERIAL_VID.ID AS Expr7, dbo.INSTEX_MATERIAL_VID.NAME AS Expr8, 
                      dbo.INSTEX_MATERIAL_TYPE.ID AS Expr9, dbo.INSTEX_MATERIAL_TYPE.NAME AS Expr10, dbo.INSTEX_MATERIAL_TYPETREATMEN.ID AS Expr11, 
                      dbo.INSTEX_MATERIAL_TYPETREATMEN.NAME AS Expr12
FROM         dbo.INSTEX_SKLAD INNER JOIN
                      dbo.INSTEX_MATERIAL ON dbo.INSTEX_SKLAD.MATERIALID = dbo.INSTEX_MATERIAL.ID INNER JOIN
                      dbo.INSTEX_MATERIAL_AMOUNTTYPE ON dbo.INSTEX_SKLAD.AMOUNTTYPEID = dbo.INSTEX_MATERIAL_AMOUNTTYPE.ID INNER JOIN
                      dbo.INSTEX_COUNTRIES ON dbo.INSTEX_MATERIAL.COUNTRIEID = dbo.INSTEX_COUNTRIES.ID INNER JOIN
                      dbo.INSTEX_MATERIAL_BIRTHPLACEID ON dbo.INSTEX_MATERIAL.BIRTHPLACEID = dbo.INSTEX_MATERIAL_BIRTHPLACEID.ID INNER JOIN
                      dbo.INSTEX_MATERIAL_VID ON dbo.INSTEX_MATERIAL.VIDIDMATERIAL = dbo.INSTEX_MATERIAL_VID.ID INNER JOIN
                      dbo.INSTEX_MATERIAL_TYPE ON dbo.INSTEX_MATERIAL.TYPEIDMATERIAL = dbo.INSTEX_MATERIAL_TYPE.ID INNER JOIN
                      dbo.INSTEX_MATERIAL_TYPETREATMEN ON dbo.INSTEX_MATERIAL.TYPETREATMENTID = dbo.INSTEX_MATERIAL_TYPETREATMEN.ID

Получаеться запрос к Views вот такой 
Код

SELECT [ID]
      ,[SKLADID]
      ,[MATERIALID]
      ,[AMOUNT]
      ,[AMOUNTTYPEID]
      ,[DATE]
      ,[Expr1]
      ,[TYPEIDMATERIAL]
      ,[VIDIDMATERIAL]
      ,[COUNTRIEID]
      ,[BIRTHPLACEID]
      ,[TYPETREATMENTID]
      ,[SIZEMATERIAL]
      ,[COLOR]
      ,[OPIS]
      ,[CENA]
      ,[Expr2]
      ,[NAME]
      ,[Expr3]
      ,[Expr4]
      ,[Expr5]
      ,[Expr6]
      ,[Expr7]
      ,[Expr8]
      ,[Expr9]
      ,[Expr10]
      ,[Expr11]
      ,[Expr12]
  FROM [INSTEX_MATERIALS_ON_STORAGES_VIEW]

И мне надо подправить запрос так чтобы при отображения записей у меня исключались записи одинакового MATERIALID и по последной дате показывалось
Типа так
Ну вот пример 
Ну вот пример 
ID Номер склада Номер материала Количество Единица измерения Дата
1|1| 1| 80| 1| 10.09.2007
2|1 |2| 60| 1| 10.09.2007
3|1 |1| 70| 1| 11.09.2007
4|1 |1| 60| 1| 15.09.2007
И мне надо отобразить записи
4|1|1| 60| 1| 15.09.2007 
2|1|2| 60| 1| 10.09.2007





PM MAIL ICQ   Вверх
dereyly
Дата 6.10.2007, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 16.6.2006

Репутация: 1
Всего: 4



group by MATERIALID 
sort by date
учите матчасть

Это сообщение отредактировал(а) dereyly - 6.10.2007, 21:55
PM MAIL   Вверх
Gregoryy
Дата 7.10.2007, 02:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 6.10.2007

Репутация: нет
Всего: 1



Не катит возвращает ошибку
Цитата

Column 'INSTEX_MATERIALS_ON_STORAGES_VIEW.ID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

PM MAIL ICQ   Вверх
Servena
Дата 8.10.2007, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 251
Регистрация: 24.7.2007
Где: Днепропетровск

Репутация: 10
Всего: 14



Грегори, давай определимся:
1. какие поля тебе нужны(все из тех, или некоторые)?
2. если мы будем группировать, то к каким полям нужно будет применять и какие агрегирующие функции(ошибка dereyly - он(она) забыл(а) тебе сказать о агрегировании). Например, суммировать по количеству товара или может быть нужно выбирать первое попавшее вхождение и т.д.

Давай подробнее - тогда вопрос будет решен моментально.
PM MAIL   Вверх
Gregoryy
Дата 11.10.2007, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 6.10.2007

Репутация: нет
Всего: 1



Уже нашел ответ. Только немного переделал
Код

SELECT [ID] ,[SKLADID] ,[MATERIALID] ,[AMOUNT] ,[AMOUNTTYPEID],[DATE]      ,[Expr1],[TYPEIDMATERIAL],[VIDIDMATERIAL],[COUNTRIEID],[BIRTHPLACEID],[TYPETREATMENTID],[SIZEMATERIAL],[COLOR],[OPIS],[CENA],[Expr2],[NAME],[Expr3],[Expr4],[Expr5],[Expr6],[Expr7],[Expr8],[Expr9],[Expr10],[Expr11],[Expr12],[HOLASTEDIT] FROM [instex].[dbo].[INSTEX_MATERIALS_ON_STORAGES_VIEW]
WHERE     (DATE IN
                          (SELECT     MAX(DATE) AS Expr1
                            FROM          INSTEX_SKLAD WHERE  [SKLADID] = 2
                            GROUP BY MATERIALID)) 


Вы мне вот что скажите, почему не можно засунуть в iNSTEXMATERIALSONSTORAGESVIEWBindingSource.Filter =(DATE IN    (SELECT     MAX(DATE) AS Expr1 FROM  INSTEX_SKLAD WHERE  [SKLADID] = 2 GROUP BY MATERIALID))
Цитата

Синтаксическая ошибка: отсутствует операнд после оператора 'MAX'.

Или просто фильтр не поддержует такое? 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.1138 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.