SQL TwrCeny.TwC_TwrLp - kopiowanie ceników

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET

Moderator: mikey

farbex
Posty: 111
Rejestracja: 15 sty 2010, 15:17
Rola: Administrator CDN XL
Lokalizacja: Ciechanów
Kontakt:

SQL TwrCeny.TwC_TwrLp - kopiowanie ceników

Post 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.
Przemysław Klimkowski
farbex.com.pl

piotru
Posty: 83
Rejestracja: 08 maja 2008, 13:02
Rola: Konsultant CDN XL
Wersja: 8.0 HR1
Lokalizacja: Warszawa
Kontakt:

Re: SQL TwrCeny.TwC_TwrLp - kopiowanie ceników

Post 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

piotru
Posty: 83
Rejestracja: 08 maja 2008, 13:02
Rola: Konsultant CDN XL
Wersja: 8.0 HR1
Lokalizacja: Warszawa
Kontakt:

Re: SQL TwrCeny.TwC_TwrLp - kopiowanie ceników

Post 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

farbex
Posty: 111
Rejestracja: 15 sty 2010, 15:17
Rola: Administrator CDN XL
Lokalizacja: Ciechanów
Kontakt:

Re: SQL TwrCeny.TwC_TwrLp - kopiowanie ceników

Post 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.
Przemysław Klimkowski
farbex.com.pl

ODPOWIEDZ