Тамар Гранор пример по коррелированнм UPDATE | |
---|---|
boba Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
После нашего участия и победы в фоксовом соревновании 2002 года одним из призов было
получение анонсов ( короткого содержания) и tips ( решений маленьких вопросов) из журнала Fox Advicer Обычно присылали всякие мелочи, я все собирал до кучи, чтобы это не порознь, а в целом тут поместить на сайте. Для тех, кто не знаком с этим журналом, короткая справка. Фокс адвайсор в отличии от FoxTalk у нас не издается, имеет вид настоящего журнала, красиво оформлен, стоит раза в 3 его дороже. Раньше , году скажем в 1995-1996 очень много там было интересненького, у меня года за полтора есть номера старые. Сейчас там уже давненько одни и те же личности публикуются и все как то обюрократилось, как в и в нашем государстве. Но вот сегодня прислали очередное письмо, которое заслуживает по моему мнению внимания О новом синтаксисе в 9 версии для коррелированных update Эта возможность всегда была и в Оракл и в MS SQL В фоксе мы делали ее в основном обычным replace for А VFP update такого не умел С 9 версии умеет Вот статейка Тамар Гранор, о которой я говорил Correlated Updates in Visual FoxPro 9 Visual FoxPro 9 offers a new way to specify records to be updated. Learn an easier way to change data in many records at once. By Tamar E. Granor, FoxPro Advisor technical editor ARTICLE INFO FOXPRO ADVISOR Length 0.25 page Doc # 14629 No reader comments yet. The SQL UPDATE command in Microsoft Visual FoxPro (VFP) provides an easy way to change data in many records at once. However, in VFP 8 and earlier, when you want to indicate which records to update based on data in another table, you have to use a subquery. FoxPro Advisor Sponsors # Hallogram Publishing - Your #1 source for Visual FoxPro Tools. Over 14,500 software products. # Stonefield Systems Group - Stonefield Query--develop customized reports for nearly any application ADVERTISEMENT VFP 9 offers an alternative way to specify the records to be updated. The FROM clause now accepts multiple tables with join conditions. Only those records in the target table (the one listed after the UPDATE keyword) that are specified by the join conditions (combined with the filter conditions in the WHERE clause) are updated. Consider a data warehouse (SalesByProduct) designed to hold sales by product for a single month. The new FROM clause makes it possible to update this table with a single command, shown in listing 1. Listing 1: Correlated update -- This command uses a derived table and the ability to join tables in the UPDATE command to put a new month's data into the data warehouse table. UPDATE SalesByProduct ; SET SalesByProduct.TotalSales = ; NVL(MonthlySales.TotalSales, $0), ; SalesByProduct.UnitsSold = ; NVL(MonthlySales.UnitsSold, 0) ; FROM SalesByProduct ; LEFT JOIN (SELECT Order_Line_Items.Product_ID, ; SUM(Quantity*Order_Line_Items.Unit_Price) ; AS TotalSales, ; SUM(Quantity) AS UnitsSold ; FROM Order_Line_Items ; JOIN Orders ; ON Order_Line_Items.Order_ID = Orders.Order_ID ; AND (MONTH(Order_Date) = nMonth ; AND YEAR(Order_Date) = nYear) ; GROUP BY 1); AS MonthlySales ; ON SalesByProduct.Product_ID = MonthlySales.Product_ID This tip comes from Tamar's "Do More With VFP's SQL Commands" in FOXPRO ADVISOR magazine. In the article, she demonstrates how VFP 9 removes limits in a number of areas. Specifically, she shows you the range of new possibilities in VFP 9 related to its SQL sublanguage. These include improvements to correlated subqueries, as well as faster query performance. Pro-level subscribers to the magazine can read the full article online at Advisor.com. ------------------ не имей 100 рублей, а имей сто друзей |
Re: Тамар Гранор пример по коррелированнм UPDATE | |
---|---|
Kaiser Автор Сообщений: 272 Дата регистрации: 31.10.2002 |
если так все и будет, то это прорыв
------------------ жизнь дала трещину и стала похожа на ж..... |
Re: Тамар Гранор пример по коррелированнм UPDATE | |
---|---|
Равиль Сообщений: 6555 Откуда: Уфа Дата регистрации: 01.08.2003 |
boba :
Цитата:Владимир, можно об этом чуть подробнее, кто, где и как ? ------------------ Тяжело согнать курсором муху с монитора ... |
Re: Тамар Гранор пример по коррелированнм UPDATE | |
---|---|
Syberex Сообщений: 1432 Откуда: Кострома Дата регистрации: 19.01.2004 |
А можна выделить жирным например, где в этом запросе корреляция ,
а то я это слово вообще не понимаю... Если имеется ввиду Update с опцией FROM , то я уже использую ;) , а VFP6 так нехватало! ------------------ |
Re: Тамар Гранор пример по коррелированнм UPDATE | |
---|---|
Aleksey Tsingauz [MSFT] |
Цитата: Да, имеется в виду UPDATE на основе данных из других таблиц - UPDATE ... FROM ... |
Re: Тамар Гранор пример по коррелированнм UPDATE | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
шло в SET RELATION. ------------------ WBR, Igor |
Re: Тамар Гранор пример по коррелированнм UPDATE | |
---|---|
Kaiser Автор Сообщений: 272 Дата регистрации: 31.10.2002 |
Честно говоря меня всегда вырубало ограниченность Update From тока по текущей таблице, и приходилось всегда изворачиваться, даже в банальном Access работал Update From как надо, о скока нервов .....
------------------ жизнь дала трещину и стала похожа на ж..... |
© 2000-2024 Fox Club  |