Ñëîæíûé çàïðîñ íà îáíîâëåíèå...
|
|
Ïîíåäåëüíèê, 20 Àïðåëÿ 2015 ã. 12:56
+ â öèòàòíèê
Ïðîøó ïîäñêàçàòü êàê íàïèñàòü SQL-çàïðîñ íà îáíîâëåíèå äàííûõ îäíîé òàáëèöû íà îñíîâå âû÷èñëåíèé â äðóãîé... Íàïðèìåð, åñòü 2 òàáëèöû Tab1 (ñ ïîëÿìè Kod è Price) è Tab2 (ñ ïîëÿìè ID è Price). Çàäà÷à: â òàáëèöå Tab1 íàéòè ñóììó ïî ïîëþ Price, ó êîòîðûõ ïîëå Kod èìååò çíà÷åíèå 20 è 30, íî ïðè ýòîì â ñóììå äîëæíî ó÷àñòâîâàòü òîëüêî îäíî çíà÷åíèå Price (íà ïðåäñòàâëåííîì ðèñóíêå òðè ñòðîêè ó êîòîðûõ Kod=20, íàäî ÷òîáû â ñóììó ïîïàëî òîëüêî îäíî çíà÷åíèå, ò.å. 4600+3750 è âñå). È ïîòîì ïîìåñòèòü ïîëó÷åííóþ ñóììó â òàáëèöó Tab2, â ïîëå Price, ó êîòîðîãî ID=14
Ïîïûòêà èñïîëüçîâàòü ýòîò çàïðîñ íå äàëî ðåçóëüòàòîâ
UPDATE Tab2 SET Tab2.Price = (SELECT sum(Tab1.Price) WHERE Tab1.Kod IN (20, 30)) WHERE Tab2.ID=14
âî-ïåðâûõ âíóòðåííèé çàïðîñ ñóììèðóåò âñå, ò.å. 4600+4600+4600+3750, à ìíå íàäî òîëüêî ïî îäíîìó çíà÷åíèþ ò.å. 4600+3750
à âî-âòîðûõ îáíîâëåíèå âñå ðàâíî íå ïðîèñõîäèò, òàê êàê Access ðóãàåòñÿ òàêèì ñîîáùåíèåì: "Â îïåðàöèè äîëæåí èñïîëüçîâàòüñÿ òîëüêî îáíîâëÿåìûé çàïðîñ"...
http://www.sql.ru/forum/1152929/slozhnyy-zapros-na-obnovlenie
-
Çàïèñü ïîíðàâèëàñü
-
0
Ïðîöèòèðîâàëè
-
0
Ñîõðàíèëè
-