Strona 1 z 1

SQL TwrCeny.TwC_TwrLp - kopiowanie ceników

: 23 mar 2010, 11:33
autor: farbex
Witam.

Potrzebuję zapytania SQL, które by kopiowało w tabeli TwrCeny kolumnę TwC_Wartoscz z dwóch cennikow TwC_TwrLp=8,9 do jednego TwC_TwrLp=13, z tym że najpierw wprowadza wartości z 9 a póżniej z 8 nie nadpisując 9 (tylko te rekordy, których nie było w 9.

Z góry dziękuje za pomoc pozdrawiam.

Re: SQL TwrCeny.TwC_TwrLp - kopiowanie ceników

: 26 mar 2010, 11:48
autor: piotru
farbex pisze:Witam.

Potrzebuję zapytania SQL, które by kopiowało w tabeli TwrCeny kolumnę TwC_Wartoscz z dwóch cennikow TwC_TwrLp=8,9 do jednego TwC_TwrLp=13, z tym że najpierw wprowadza wartości z 9 a póżniej z 8 nie nadpisując 9 (tylko te rekordy, których nie było w 9.

Z góry dziękuje za pomoc pozdrawiam.
Uzyj kursora ktory bedzie krok po kroku wyciagal dane i pozniej robil insert do nowej tabeli

http://msdn.microsoft.com/en-us/library/ms180169.aspx

Re: SQL TwrCeny.TwC_TwrLp - kopiowanie ceników

: 26 mar 2010, 11:50
autor: piotru
piotru pisze:
farbex pisze:Witam.

Potrzebuję zapytania SQL, które by kopiowało w tabeli TwrCeny kolumnę TwC_Wartoscz z dwóch cennikow TwC_TwrLp=8,9 do jednego TwC_TwrLp=13, z tym że najpierw wprowadza wartości z 9 a póżniej z 8 nie nadpisując 9 (tylko te rekordy, których nie było w 9.

Z góry dziękuje za pomoc pozdrawiam.
Uzyj kursora ktory bedzie krok po kroku wyciagal dane i pozniej robil insert do nowej tabeli

http://msdn.microsoft.com/en-us/library/ms180169.aspx
Jesli masz problem z tym to pisz na prywatny adres chetnei ci pomoge

Re: SQL TwrCeny.TwC_TwrLp - kopiowanie ceników

: 26 mar 2010, 12:01
autor: farbex
Dziękuję bardzo za każdą pomoc.
Znalazłem już rozwiązanie:

Wersja z usunięciem i utworzeniem cennika:

Kod: Zaznacz cały

USE CDNXL_Farbex_nowy

DELETE FROM CDN.TwrCeny
WHERE Twc_TwrLp=13


Insert into CDN.TwrCeny 
           ([TwC_TwrTyp]
           ,[TwC_TwrFirma]
           ,[TwC_TwrNumer]
           ,[TwC_TwrLp]
           ,[TwC_Waluta]
           ,[TwC_NrKursu]
           ,[TwC_Marza]
           ,[TwC_Wartosc]
           ,[TwC_Zaok]
           ,[TwC_Offset]
           ,[TwC_Aktualizacja]
           ,[TwC_Priorytet])
SELECT
            c9.[TwC_TwrTyp]
           ,c9.[TwC_TwrFirma]
           ,c9.[TwC_TwrNumer]
           ,13
           ,c9.[TwC_Waluta]
           ,c9.[TwC_NrKursu]
           ,c9.[TwC_Marza]
           ,CASE 
			WHEN c9.[TwC_Wartosc] is null or c9.[TwC_Wartosc]=0 
				THEN c8.[TwC_Wartosc]
			ELSE c9.[TwC_Wartosc]
			END
           ,C9.[TwC_Zaok]
           ,C9.[TwC_Offset]
           ,C9.[TwC_Aktualizacja]
           ,C9.[TwC_Priorytet]
FROM CDN.TwrCeny as c9
LEFT OUTER JOIN CDN.TwrCeny as c8 on c8.[TwC_TwrNumer]=c9.[TwC_TwrNumer]
and c8.Twc_TwrLp=8
WHERE c9.Twc_TwrLp=9
Wersja z aktualizacją cennika (z tabelą tymczasową):

Kod: Zaznacz cały

USE CDNXL_Farbex_nowy

SELECT * INTO #ceny FROM CDN.TwrCeny 
where Twc_TwrLp in (8,9)

UPDATE CDN.TwrCeny 
	SET CDN.TwrCeny.TwC_Wartosc = CASE 
			WHEN c9.[TwC_Wartosc] is null or c9.[TwC_Wartosc]=0 
				THEN c8.[TwC_Wartosc]
			ELSE c9.[TwC_Wartosc]
			END
FROM #ceny as c9
LEFT OUTER JOIN #ceny as c8 on c8.[TwC_TwrNumer]=c9.[TwC_TwrNumer]
and c8.Twc_TwrLp=8
WHERE c9.Twc_TwrLp=9
and CDN.TwrCeny.Twc_TwrLp=13
and CDN.TwrCeny.Twc_TwrNumer=c9.Twc_TwrNumer

drop table #ceny
Jeszcze raz dziękuję i pozdrawiam.