ÖmürTokman Ответов: 2

Вытягивание gridview с запросом


Хорошего дня;

Я не знаю английского языка, я использую google translate, я извиняюсь, если есть ошибка перевода.

Заранее спасибо за вашу помощь.

Чтобы создать GridView3
какой запрос я должен написать?

asp.net,C#,sql experss,я вещаю локально.

gridview1-table1(sql)/gridview2-table2(sql)/gridview3-запрос ?

входящий стол
колонка1 -колонка2
продукт 1-5 кг
продукт 2 -3 кг
продукт 2 -4 кг
произведения1 -3 кг

Исходящий стол
колонка1-колонка2
произведения1-3 кг
продукт 2-3 кг
продукт 1-4 кг
продукт 2-2 кг

результат gridview3
колонка1-колонка2
произведения1-1 кг
продукт 2-2 кг

Что я уже пробовал:

SqlDataSource3.SelectCommand = "WITH    entries AS( SELECT marka, kimyasal_kodu, kimyasal_adi, SUM(kilo) AS kilo FROM byh_kimyasal_giris_tbl GROUP BY marka, kimyasal_kodu, kimyasal_adi), exits AS(SELECT marka, kimyasal_kodu, kimyasal_adi, SUM(kilo) AS kilo FROM byh_kimyasal_kullanim_tbl GROUP BY marka, kimyasal_kodu, kimyasal_adi )SELECT g.marka, g.kimyasal_kodu, g.kimyasal_adi, g.kilo, COALESCE(c.kilo, 0) AS kilo, g.kilo - COALESCE(c.kilo, 0) AS remaining FROM entries g LEFT JOIN exits c ON g.marka = c.marka AND g.kimyasal_kodu = c.kimyasal_kodu AND g.kimyasal_adi = c.kimyasal_adi";

GridView3.DataSource = SqlDataSource3;
GridView3.DataBind();

2 Ответов

Рейтинг:
2

ÖmürTokman

MS SQL Management Studioda работает, результат правильный, но aspx.cs также дает неправильные результаты.

"incomming_tbl.кило (12+3+5)" - "outgoing_tbl.кило(2+2)"= 16 Но "результате=18" получен неправильный результат.

Где я совершаю ошибку?

SqlDataSource1.SelectCommand = "SELECT Incomming_tbl.colorName,(SUM(DISTINCT Incomming_tbl.kilo)) - (SUM(DISTINCT OutGoing_tbl.kilo)) AS kilo FROM Incomming_tbl AS Incomming_tbl LEFT JOIN OutGoing_tbl AS OutGoing_tbl ON OutGoing_tbl.colorName = Incomming_tbl.colorName GROUP BY Incomming_tbl.colorName,OutGoing_tbl.colorName";


khanabrar

Попробовать это
Sqldatasource1 на.Команды selectcommand = "выбрать Incomming_tbl.colorName,((сумма(в отличие Incomming_tbl.кило)) - (сумма(в отличие OutGoing_tbl.кило))) Как кило
От Incomming_tbl как Incomming_tbl
Левое соединение OutGoing_tbl как OutGoing_tbl на OutGoing_tbl.colorName = Incomming_tbl.colorName
Группа по Incomming_tbl.colorName,OutGoing_tbl.colorName";

Рейтинг:
0

khanabrar

Привет попробуйте ниже запрос

DECLARE @IncommingT1 AS TABLE (C1 VARCHAR(64), Data int)
DECLARE @OutGoingT2 AS TABLE (C1 VARCHAR(64), Data int)

INSERT INTO @IncommingT1
(
    C1,
    Data
)
VALUES
(   'product1', -- C1 - varchar(64)
    5   -- Data - int
),(   'product2', -- C1 - varchar(64)
    3   -- Data - int
),(   'product2', -- C1 - varchar(64)
    4   -- Data - int
),(   'product1', -- C1 - varchar(64)
    3   -- Data - int
);
INSERT INTO @OutGoingT2
(
    C1,
    Data
)
VALUES
(   'product1', -- C1 - varchar(64)
    3   -- Data - int
),(   'product2', -- C1 - varchar(64)
    3   -- Data - int
),(   'product1', -- C1 - varchar(64)
    4   -- Data - int
),(   'product2', -- C1 - varchar(64)
    2   -- Data - int
)

SELECT it.C1,(SUM(DISTINCT it.Data)) - (SUM(DISTINCT ogt.Data)) AS C2  FROM  @IncommingT1 AS it 
LEFT JOIN @OutGoingT2 AS ogt ON ogt.C1 = it.C1
GROUP BY it.C1,ogt.c1