sql sorgu hk.

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
haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 06:38

sql sorgu hk.

Mesaj gönderen haznedarli »

herkese kolay gelsin kendimce bir kod yazma ya çalışıyorum fakat bir türlü beceremedim.
burada daha önce takıldığımda çok yardımcı oldular umarım gene yardım edersiniz. (şimdiden teşekkürler)

db de
STOK , STOK_FIYAT diye iki tablom var bu alanlarda

stokda sadece bilgileri tutuyorum.
fıyatlı olanda alış fiyat satış fiyat isk ve benzeri şeyleri tutuyorum

amacım

örnek stokkodu 1060 stok adı el fren kolu bunu sadece bir kere acacagım stok tablosunda
ok açtım.

stokfıyat tablosunda

marka ya göre fiyatları fiyatları yzdırıyorum.
o da okey

fakat yapamadıgım

view sp gibi sorgularak
örnek çıkarmak istedigim tablo su

1060 - elfrenkolu - otoyol - 10- tl - 10 isk -15 isk
1060 - elfrenkolu - emt- 5- tl - 8 isk -5 isk

tablo yapımda bu


CREATE TABLE [dbo].[STOK] (
[BLKODU] bigint NOT NULL ,
[STOKKODU] varchar(30) COLLATE Turkish_CI_AI NOT NULL ,
[STOK_ADI] varchar(70) COLLATE Turkish_CI_AI NULL ,
[STOK_ADI_YD] varchar(75) COLLATE Turkish_CI_AI NULL ,
[ACIKLAMA] varchar(60) COLLATE Turkish_CI_AI NULL ,
[AKTIF] smallint NULL ,
[SILINDI] smallint NULL ,
[KAYDEDEN] varchar(20) COLLATE Turkish_CI_AI NULL ,
[KAYIT_TARIHI] datetime NULL ,
[DEGISTIREN] varchar(20) COLLATE Turkish_CI_AI NULL ,
[DEGISTIRME_TARIHI] datetime NULL ,
CONSTRAINT [PK_STOK_BLKODU] PRIMARY KEY ([BLKODU]),
CONSTRAINT [UQ_STOK_STOKKODU] UNIQUE ([STOKKODU] ASC)
)
ON [PRIMARY]
GO

CREATE INDEX [ST_STOK_ADI] ON [dbo].[STOK]
([STOK_ADI] ASC)
ON [PRIMARY]
GO


--------------


CREATE TABLE [dbo].[STOK_FIYAT] (
[BLKODU] bigint NOT NULL ,
[BLSTKODU] bigint NOT NULL ,
[BARKODU] varchar(30) COLLATE Turkish_CI_AI NULL ,
[MARKASI] varchar(30) COLLATE Turkish_CI_AI NULL ,
[MENSEI] varchar(30) COLLATE Turkish_CI_AI NULL ,
[LISTE_FIYATI] float(53) NULL ,
[ALIS_SATIS] smallint NULL ,
[TANIMI] varchar(15) COLLATE Turkish_CI_AS NULL ,
[FIYAT_NO] varchar(10) COLLATE Turkish_CI_AS NULL ,
[FIYATI] float(53) NULL ,
[PARA_BIRIMI] varchar(20) COLLATE Turkish_CI_AI NULL ,
[BIRIMI] varchar(20) COLLATE Turkish_CI_AI NULL ,
[DURUMU] varchar(30) COLLATE Turkish_CI_AI NULL ,
[KDV_ORANI_ALIS] float(53) NULL ,
[KDV_ORANI_SATIS] float(53) NULL ,
[ALISK1_KULLAN] smallint NULL ,
[ALISK1_ORANI] float(53) NULL ,
[ALISK2_KULLAN] smallint NULL ,
[ALISK2_ORANI] float(53) NULL ,
[ALISK3_KULLAN] smallint NULL ,
[ALISK3_ORANI] float(53) NULL ,
[STISK1_KULLAN] smallint NULL ,
[STISK1_ORANI] float(53) NULL ,
[STISK2_KULLAN] smallint NULL ,
[STISK2_ORANI] float(53) NULL ,
[STISK3_KULLAN] smallint NULL ,
[STISK3_ORANI] float(53) NULL ,
[ALIS_FIYATI_DEGISTI] smallint NULL ,
[SF_ETIKET_BASILACAK] smallint NULL ,
CONSTRAINT [PK_STOK_FIYAT] PRIMARY KEY ([BLKODU])
)
ON [PRIMARY]
GO

CREATE INDEX [STFY_ALISFIYATI_DEGISTI] ON [dbo].[STOK_FIYAT]
([ALIS_FIYATI_DEGISTI] ASC)
ON [PRIMARY]
GO

CREATE INDEX [STFY_BLSTKODU] ON [dbo].[STOK_FIYAT]
([BLSTKODU] ASC)
ON [PRIMARY]
GO

CREATE TRIGGER [dbo].[STOK_FIYATUPDATE]
ON [dbo].[STOK_FIYAT]
AFTER UPDATE
AS
BEGIN
DECLARE @AS SMALLINT,@OLD_FIYATI DOUBLE PRECISION, @NEW_FIYATI DOUBLE PRECISION;
SELECT @AS = ALIS_SATIS, @NEW_FIYATI = FIYATI FROM INSERTED;
SELECT @OLD_FIYATI = FIYATI FROM DELETED;
IF ((@AS = 1) AND (@NEW_FIYATI <> @OLD_FIYATI))
UPDATE STOK_FIYAT SET ALIS_FIYATI_DEGISTI = 1 FROM INSERTED I JOIN STOK_FIYAT F ON I.BLKODU=F.BLKODU;
IF ((@AS = 2) AND (@NEW_FIYATI <> @OLD_FIYATI))
UPDATE STOK_FIYAT SET SF_ETIKET_BASILACAK = 1 FROM INSERTED I JOIN STOK_FIYAT F ON I.BLKODU=F.BLKODU;
END
GO
Cevapla