PDA

View Full Version : تلفیق چند فیلد در خروجی



M.YasPro
چهارشنبه 21 مهر 1389, 10:47 صبح
سلام
من می خوام از جدول a که شامل فروش محصولاتم هست و از جدول b که شامل فروش تکی محصولاتم هست یه سری فیلد ها مثل تعداد فروخته شده ، تاریخ ، نام محصول و ... رو با هم نشون بدم
پیشنهاد شما کدوم روشه ؟

بهنام بهمنی
چهارشنبه 21 مهر 1389, 12:18 عصر
لطفا ساختار جداولتان را اينجا قرار دهيد

M.YasPro
چهارشنبه 21 مهر 1389, 12:22 عصر
جدول محصول : id,name,price,type,...
جدول جزئیات فاکتور :id ,masterFactorId,ProductId,count,...
جدول تک فروشی : id , productId,count ,date,...
جدول فاکتور اصلی : id,CustomerId,date,..

حالا می خوام توی خروجیم تمام جنس های فروخته شده تو جدولهای factorDetail, تک فروشی رو داشته باشم با تاریخ و قیمت و تعداد فروخته شده .

M.YasPro
پنج شنبه 22 مهر 1389, 09:37 صبح
کسی نیست نظر داشته باشه ؟!!

حمیدرضاصادقیان
پنج شنبه 22 مهر 1389, 10:06 صبح
سلام.این رو شما میتونید با یک join انجام بدید.
مانند :


Select TF.*,Tfr.*,TfT.* from table_HeaderFActor as Tf
inner join Table_factordetail as Tfr on tf.code=tfr.code
Inner join table_FActorTak as TFT on tfr.id=tft.id

من در این دستور ابتدا جدول هدر فاکتور رو با جزئیات فاکتور join کردم و براساس کد فاکتور به هم متصل کردم بعد جدول ریز فاکتور رو به جدول تک فروشی وصل کردم براساس فیلد id/
در ضمن در Select گفتم تمامی فیلدهارو بیاره که شما میتونی نام فیلدهایی که نیاز دارید رو بنویسید.
موفق باشید

behrouzlo
پنج شنبه 22 مهر 1389, 11:28 صبح
با کد زیر تست کنید:


SELECT P.NAME,P.Price,F.Date,SUM(F.COUNT),'فروش محصولات'
FROM Product P INNER JOIN HeaderFActor H ON F.productId = P.ID
INNER Join FActorDetail F ON H.id = F.ID
GROUP BY P.NAME,P.Price,F.Date

UNION ALL

SELECT P.NAME,P.Price,F.Date,SUM(F.COUNT),'تک فروشی'
FROM Product P INNER JOIN FActorTak F ON P.Id = F.productId
GROUP BY P.NAME,P.Price,F.Date

تصور من از مسئله این است که امکان دارد کالای در فروش تکی محصولات باشد که در لیست فروش محصولات وجود نداشته باشد در غیر اینصورت جواب آقای صادقیان صحیح می باشد

M.YasPro
پنج شنبه 22 مهر 1389, 13:37 عصر
شما این مدل رو در نظر بگیرید

من میخوام این فیلد ها رو در روجی داشته باشم :
نام محصول
قیمت محصول
تعداد فروخته شده
تاریخ فروش

این خروجی می خوام شامل تمام محصولات فروخته شده در تک فروشی و فروش کلی بشه .

ممنون از توجهتون

behrouzlo
شنبه 24 مهر 1389, 10:55 صبح
با کد زیر تست کنید:


SELECT P.NAME,P.Price,L.Date,SUM(L.COUNT)
FROM(
SELECT F.productId,F.Date,F.COUNT
FROM HeaderFActor H INNER Join FActorDetail F ON H.id = F.ID
UNION ALL
SELECT F.productId ,F.Date,F.COUNT
FROM FActorTak F) AS List L,Product P
WHERE L.productId = P.productId
GROUP BY P.NAME,P.Price,L.Date
فکر کنم پایگاه داده شما اکسس باشه اگر به این شکل جواب نداد ار دو تا کوئری در اکسس استفاده کنید یکی برای Select داخلی و دیگر بر روی کوئری اول و جدول Product