sql update?

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

sql update?

Mesaj gönderen sarp_halit »

S. A. Arkadaşlar.

belki çok küçük bir şey ama o kadar yoğunum ve yorgunum ki bir türlü neticelendiremediğim bir konu var. daha önceden oluşturulan tabloya ek olarak bir alan koydum. program üzerinde yaptığım değişiklilerde etkili olduğundan dolayı bu alanların hepsini güncellemem gerek.

ranID int
Hasta varchar(11) // Tckimlik alanı geliyor
Tarih datetime
saat varchar(5)
Servis varchar(6)
Doktor varchar(6)

DosyaNo varchar(6) // bu da sonradan eklediğim kısım. şimdi Hasta bilgisini hastalar tablosundan çekiyor. programın önceki sürümlerinde sadece Hasta bilgisi üzerinden işlem yapıyorudum ama gereksiz bir sürü kod ile iyice hantallaştığı kanısına vardım. onun için de dosyano alanını ekledim. şimdi yapılacak işlem şu:

bu tabloda Hasta alanı dolu olan kayıtların dosyano alanları hasta bilgileri tablosundaki tckimlikno alanı ile bu tablodaki hasta alanı eşit olan kayıtların dosyano bilgilerini bu tablodaki dosyano alanına aktarılması.

benim oluşturduğum sorugu(larda) alt sorgu birden fazla değer döndürdü diye hatalar veriyor. fikir yürütebilecek arkadaşlar var mı?

kolay gelsin.
Fethiye den herkese sevgiler ...
X))@:>
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: sql update?

Mesaj gönderen conari »

iki tablodaki alanları, isimleri ve eşleşmeleri tekrar yazarmısın. Biraz karışık cümleler kurmuşsunuz benimde kafam karıştı. :D
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

Re: sql update?

Mesaj gönderen sarp_halit »

Güncellenecek olan tablo:

Kod: Tümünü seç

USE [TIPDATA]
GO
/****** Object:  Table [dbo].[webRANDEVU]    Script Date: 12/03/2010 16:07:40 ******/
CREATE TABLE [dbo].[webRANDEVU](
	[ranID] [int] IDENTITY(1,1) NOT NULL,
	[Servis] [varchar](50) COLLATE Turkish_CI_AS NOT NULL,
	[Tarih] [smalldatetime] NOT NULL,
	[Saat] [char](5) COLLATE Turkish_CI_AS NULL,
	[Hasta] [varchar](11) COLLATE Turkish_CI_AS NULL,
	[iptalkodu] [nvarchar](6) COLLATE Turkish_CI_AS NULL,
	[Doktor] [varchar](5) COLLATE Turkish_CI_AS NULL,
	[ranDURUM] [char](1) COLLATE Turkish_CI_AS NULL,
	[drDURUM] [char](1) COLLATE Turkish_CI_AS NULL CONSTRAINT [DF_webRANDEVU_drDURUM]  DEFAULT ('C'),
	[ranNEREDEN] [char](1) COLLATE Turkish_CI_AS NULL,
	[geldimi] [char](1) COLLATE Turkish_CI_AS NULL,
	[ranEKLEYEN] [nvarchar](50) COLLATE Turkish_CI_AS NULL,
	[ranEKLEME] [datetime] NULL,
	[ranDEGISTIREN] [nvarchar](50) COLLATE Turkish_CI_AS NULL,
	[ranDEGISTIRME] [datetime] NULL,
	[isimsizHASTAADI] [nvarchar](100) COLLATE Turkish_CI_AS NULL,
	[isimsizHASTATELEFON] [nvarchar](50) COLLATE Turkish_CI_AS NULL,
	[DOSYANO] [varchar](6) COLLATE Turkish_CI_AS NULL,
 CONSTRAINT [PK__webRANDEVU__3C4B96B6] PRIMARY KEY CLUSTERED 
(
	[ranID] ASC
)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
Dosya Numarası Alınacak Tablo ( Sadeleştirilerek):

Kod: Tümünü seç


CREATE TABLE [dbo].[HASTA](
	[DOSYANO] [varchar](6) COLLATE Turkish_CI_AS NOT NULL,
	[HASTAADI] [varchar](15) COLLATE Turkish_CI_AS NOT NULL,
	[HASTASOYADI] [varchar](30) COLLATE Turkish_CI_AS NOT NULL,
	[BABAADI] [varchar](15) COLLATE Turkish_CI_AS NULL,
	[ANAADI] [varchar](15) COLLATE Turkish_CI_AS NULL,
	[TCKIMLIKNO] [varchar](15) COLLATE Turkish_CI_AS NULL,
 CONSTRAINT [PK_ADRES] PRIMARY KEY NONCLUSTERED 
(
	[DOSYANO] ASC
)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
güncelleme yapılacak olan tablodaki dosyano alanı sonradan eklendi. Hasta yazan kısım da veri kopyalanacak tablodaki TCKIMLIKNO alanına eş yani ikinci koddaki tckimlik no birinci koddaki hasta alanına eşit olan dosya noları birinci koddaki dosya no alanıan geçecek.

umarım bu sefer anlaşılır olmuştur. :D
Fethiye den herkese sevgiler ...
X))@:>
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: sql update?

Mesaj gönderen sabanakman »

Kod: Tümünü seç

update webRANDEVU set webRANDEVU.DOSYANO=h.DOSYANO FROM HASTA as h where webRANDEVU.HASTA<>'' and webRANDEVU.Hasta=h.TCKIMLIKNO
Soru cümlesi hakikaten benim de kafamı karıştırdı. Kağıt üzerine şekil çizmek gerektiriyor :mrgreen: .
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: sql update?

Mesaj gönderen aslangeri »

@sarp_halit;
keşke oluşturduğunuz sorguyuda gönderseydiniz.
muhtemelen 1 kaytı gelmesini beklediğiniz bir durumda birden fazla kayıt dönüyor. Sorguyu görsek ona göre bişeylerde diyebilirdik.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

Re: sql update?

Mesaj gönderen sarp_halit »

@sabanakman sorgu çalıştı, kusura bakma anca fırsat bulabildim geri dönüş için. ellerine ve emeğine sağlık.
Fethiye den herkese sevgiler ...
X))@:>
Cevapla