PDA

View Full Version : مشکل در query join



$ M 3 H R D A D $
شنبه 27 اسفند 1390, 14:50 عصر
سلام من پندتا جدول دارم که همرو دارم با هم جوین میکنم
برای نمایش اطلاعات یک فاکتور که یک سری اطلاعات کلی داره و یک سری ستون ها مقل جمع کل از جدول دیگه خونده میشه
این جمع کل از فاکتور فرعی که همون داده های توی فاکتوره + مبلغ کرایه حمل از جدول اطلی
حالا مشکل اینه که اگه یک فاکتور قیمت حمل داشته باشه اما براش هیج رکوردی تو جدول فرعی ثبت نشده باشه به خاطر جوین 0 برمیگردونه و اطالا اون رکورد و نشون نمیده
من بانک و میزارم
view 4
آخرین تغییرات رو گزاشتم تو تکست اعمال کنید

مهدی هادیان2
شنبه 27 اسفند 1390, 18:00 عصر
سلام من پندتا جدول دارم که همرو دارم با هم جوین میکنم
برای نمایش اطلاعات یک فاکتور که یک سری اطلاعات کلی داره و یک سری ستون ها مقل جمع کل از جدول دیگه خونده میشه
این جمع کل از فاکتور فرعی که همون داده های توی فاکتوره + مبلغ کرایه حمل از جدول اطلی
حالا مشکل اینه که اگه یک فاکتور قیمت حمل داشته باشه اما براش هیج رکوردی تو جدول فرعی ثبت نشده باشه به خاطر جوین 0 برمیگردونه و اطالا اون رکورد و نشون نمیده
من بانک و میزارم
view 4
آخرین تغییرات رو گزاشتم تو تکست اعمال کنید
بسم الله الرحمن الرحیم
با سلام
فرموده بودید که هزینه حمل داره ولی هیچ رکوردی در جدول فرعی ثبت نشده است. چه طور این اتفاق می افته؟
ولی اگه با تمام این تفاسیر خواستید که این اتفاق بیفته از Left Join استفاده کنید.
موفق باشید

$ M 3 H R D A D $
یک شنبه 28 اسفند 1390, 03:15 صبح
حل نشد هزینه حمل از فیلد جدول اصلیه لطفا بانک منو ببینید

مهدی هادیان2
یک شنبه 28 اسفند 1390, 11:46 صبح
متاسفانه بانکتون Restore نشد. یا اسکریپتش رو بگزارید و یا خود بانک رو.
موفق باشید

$ M 3 H R D A D $
یک شنبه 28 اسفند 1390, 12:17 عصر
اینم بانک دوباره بک آپ گرفتم

مهدی هادیان2
یک شنبه 28 اسفند 1390, 18:16 عصر
اینم بانک دوباره بک آپ گرفتم

با سلام
نمی دونم چه جوری بک آپ می گیرید که در قسمتی که مربوط به Select the backup sets to restore فایل های مربوطه رو نمیاره
84374

$ M 3 H R D A D $
یک شنبه 28 اسفند 1390, 21:52 عصر
رو all files بزارید درست میشه

sajjad_kochekian
یک شنبه 28 اسفند 1390, 22:32 عصر
برای اینکه اگر بخواهید در صورت وجود نداشتن اطلاعات در جدول ثانویه اطلاعات جدول اولیه را نمایش بدهد بهتر است از Left Outer join استفاده کنید.

$ M 3 H R D A D $
یک شنبه 28 اسفند 1390, 23:42 عصر
left outer join استفاده میکنم اما درست نمیشه شما بانک منو بگیرید ببینید خوب مشکل منو دیگه

tiphooo
دوشنبه 29 اسفند 1390, 01:45 صبح
DECLARE @Valid_ID INT
SELECT @Valid_ID= Vila_Id
FROM dbo.Vila
WHERE (ID = '5')

SELECT @Valid_ID Valid_Id, S3.*,S3.Price+IsNull(S3.Haml_Price,0)+ISNULL(S3.al l_price,0)
- ISNULL(s3.takhfif,0) jam
FROM (
SELECT S1.*,IsNull(S2.Price,0) Price FROM (
SELECT R.*,S.[name] FROM (
SELECT P.*,Q.shop_name FROM (
SELECT * FROM Factor_Master)P
LEFT OUTER JOIN
(SELECT * FROM shop)Q
ON P.factor_shop=Q.id)R
LEFT OUTER JOIN
(SELECT * FROM fact_type)S
ON R.typ=S.id)S1
LEFT OUTER JOIN
(SELECT Fact_ID,SUM(Cast(Price AS INT)) Price FROM Factor_Slave
GROUP BY Fact_ID)S2
ON S1.ID=S2.Fact_ID)S3

$ M 3 H R D A D $
دوشنبه 29 اسفند 1390, 10:01 صبح
ممنون میتونم همین کد و توی سی شارپ به عنوان کووری بدم ؟ declare و پیزا دیگه مشکل نداره ؟

$ M 3 H R D A D $
دوشنبه 29 اسفند 1390, 10:03 صبح
آخه نمیتونم همین و توی view سیو کنم میشه راهنمایی کنید ؟ اون کد view 4 منو دیدید ؟ آخه اون به چندتا دیگه هم جوین بود میتونید اون ها هم بهش اضافه کنید آخه میترسم باز نشه

tiphooo
دوشنبه 29 اسفند 1390, 18:07 عصر
اون Declare برای اینکه از تکرار جلوگیری بشه اگر می خواهید تبدیل به view کنید declare را بردارید و select قبلی خودتان که vaild_id را میخواند در select اول قرار دهید بقیه join ها همگی درست است و نیاز به تغییر دیگری ندارید



SELECT (SELECT Vila_Id
FROM dbo.Vila
WHERE (ID = '5')) Valid_Id, S3.*,S3.Price+IsNull(S3.Haml_Price,0)+ISNULL(S3.al l_price,0)
- ISNULL(s3.takhfif,0) jam
FROM (
SELECT S1.*,IsNull(S2.Price,0) Price FROM (
SELECT R.*,S.[name] FROM (
SELECT P.*,Q.shop_name FROM (
SELECT * FROM Factor_Master)P
LEFT OUTER JOIN
(SELECT * FROM shop)Q
ON P.factor_shop=Q.id)R
LEFT OUTER JOIN
(SELECT * FROM fact_type)S
ON R.typ=S.id)S1
LEFT OUTER JOIN
(SELECT Fact_ID,SUM(Cast(Price AS INT)) Price FROM Factor_Slave
GROUP BY Fact_ID)S2
ON S1.ID=S2.Fact_ID)S3

$ M 3 H R D A D $
دوشنبه 29 اسفند 1390, 22:32 عصر
ممنونم واقعا factor_shop دوتا اومده یهنی نباید شناسه بیاد همون نام اومده با جوین کافیه همجنین typ که همون جزئی هستش بازم اومده