PDA

View Full Version : دستور join



نیما حتمی
سه شنبه 20 اسفند 1392, 10:38 صبح
با سلام
من دو تا جدول دارم به نامهای KolipeymentوReciveKoli این دو جدول فیلدی مشترک به نام TarafhesabName دارن.ماهیت این دو جدول برای دریافتی و پرداختی هایی است که کاربر ثبت میکنه
میخوام بین این دو جدول یکjoind بزنم که کاربر وقتی یک طرف حساب را مشخص کرد ب زدن یه دکمه دریافتی و پرداختی اون طرف حساب رو نشان بده و یه ستون هم داشته یاشه که بگه بدهکاره یا بستانکار؟
این سوال رو من در تالار sql هم مطرح کردم کسی جوابی نداد لطفا مدیران محترم پاک نکنید و کمکم کنین.ممنونم ازتون

agent_6332
سه شنبه 20 اسفند 1392, 11:34 صبح
دوست عزیزم سلام

اول یه صحبتی اینکه کار دستور Join چیست اتصال جداول با استفاده از فیلد های یکسان در آنها قاعده 1 : بهتره یکی از فیلدها کلید باشد قاعده 2 : داده ها یکسان باشند مثلا هر دو nvarchar
در دستور join برای تسریع عملیات بهتر است از فیلدهای عددی استفاده کنید مثلا شما مشخصه به نام id_shop دارید که در هر دو جدول یکی است پس کد زیر را میزینیم

select tbl1.full_name,tbl1.tel,tbl2.address,tbl2.universi ty from tbl1,tbl2 where tbl1.id_shop=tbl2.id_shop



حالا فیلدهایی که انتخاب میشوند به این شرط انتخاب میشوند که فیلد id_shop در هر دو جدول مقادیر یکسانی داشته باشند

نیما حتمی
چهارشنبه 21 اسفند 1392, 09:29 صبح
دوست عزیزم سلام

اول یه صحبتی اینکه کار دستور Join چیست اتصال جداول با استفاده از فیلد های یکسان در آنها قاعده 1 : بهتره یکی از فیلدها کلید باشد قاعده 2 : داده ها یکسان باشند مثلا هر دو nvarchar
در دستور join برای تسریع عملیات بهتر است از فیلدهای عددی استفاده کنید مثلا شما مشخصه به نام id_shop دارید که در هر دو جدول یکی است پس کد زیر را میزینیم

select tbl1.full_name,tbl1.tel,tbl2.address,tbl2.universi ty from tbl1,tbl2 where tbl1.id_shop=tbl2.id_shop



حالا فیلدهایی که انتخاب میشوند به این شرط انتخاب میشوند که فیلد id_shop در هر دو جدول مقادیر یکسانی داشته باشند




دوست عزیز حالا بنده که جدولمو اینطوری طراحی کردم در این مورد باید چیکار کنم؟

Mahmoud.Afrad
جمعه 23 اسفند 1392, 12:28 عصر
اسکریپت جدول ها را بزار. و بگو هر ستون برای چه کاریه.

نیما حتمی
جمعه 23 اسفند 1392, 13:38 عصر
CREATE TABLE [dbo].[ReciveKoli](
[ID] [int] IDENTITY(1,1) NOT NULL,
[DateSabt] [nvarchar](50) NULL,
[DateRecive] [nvarchar](50) NULL,
[TarafhesabName] [nvarchar](50) NOT NULL,
[Namayandeh] [nvarchar](50) NULL,
[NameBank] [nvarchar](50) NULL,
[ShH] [nvarchar](50) NULL,
[mony] [int] NULL,
[Shp] [nvarchar](50) NULL,
[babate] [nvarchar](50) NULL,
[Comm] [nvarchar](250) NULL,
[Type] [nvarchar](50) NULL,
[username] [nvarchar](50) NULL,
CONSTRAINT [PK_ReciveKoli] PRIMARY KEY CLUSTERED
(
[TarafhesabName] ASC,
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]



CREATE TABLE [dbo].[Kolipeyment](
[ID] [int] IDENTITY(1,1) NOT NULL,
[DateSabt] [nvarchar](50) NULL,
[Typetor] [nvarchar](50) NULL,
[Nametor] [nvarchar](50) NULL,
[DateHarekat] [nvarchar](50) NULL,
[TarafhesabName] [nvarchar](50) NOT NULL,
[Namayandeh] [nvarchar](50) NULL,
[NameBank] [nvarchar](50) NULL,
[ShH] [nvarchar](50) NULL,
[Mony] [int] NULL,
[babate] [nvarchar](50) NULL,
[Comm] [nvarchar](500) NULL,
[Shp] [nvarchar](50) NULL,
[Type] [nvarchar](50) NULL,
[UserName] [nvarchar](50) NULL,
CONSTRAINT [PK_KoliPeymaebt] PRIMARY KEY CLUSTERED
(
[ID] ASC,
[TarafhesabName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

نیما حتمی
جمعه 23 اسفند 1392, 13:39 عصر
من میخوام براساس
TarafhesabName joind انجام بشه