J'utilise SQL Server 2012 et je souhaite créer un tableau croisé dynamique avec 4 tables jointes.Pivot et Unpivot pour 4 tables jointes SQL Server
Voilà ma question:
SELECT
a.Itemno, a.Qty as PlanMilling,
ISNULL(b.MinimStock, 0) as MinStock,
CAST(a.ScheduleDate as Date) AS Schedule,
ISNULL(SUM(c.Qty), 0) as QtyBuilding,
ISNULL(d.RunQty, 0) as QtyStock,
d.itemcode,
ISNULL((a.Qty + d.RunQty) - SUM(c.Qty), 0) as Balance
FROM
Schedule a
LEFT OUTER JOIN
Item b ON a.ItemNo = b.ItemNo
LEFT OUTER JOIN
ShopOrderList c on a.ItemNo = c.ItemNo and a.ScheduleDate = c.ScheduleDate
LEFT OUTER JOIN
(SELECT
RunQty, ItemCode
FROM
ICMutTran a
INNER JOIN
(SELECT
itemcode as ItemNo, max(id) as maxid
FROM
ICMutTran
GROUP BY
itemcode) AS b ON a.id = b.maxid) d ON (a.ItemNo = d.ItemCode)
GROUP BY
a.ItemNo, a.Qty, b.MinimStock, a.ScheduleDate, d.RunQty, d.itemcode
et le résultat:
ItemNo | PlanMilling | MinStock | Schedule | QtyBuilding | QtyStock | ItemCode |
----------------------------------------------------------------------------------------------------------
123 | 1000 | 100 | 2016-02-04 | 200 | 1500 | 123 |
123 | 2000 | 100 | 2016-02-05 | 100 | 1500 | 123 |
123 | 1500 | 100 | 2016-02-06 | 150 | 1500 | 123 |
Ce que je dois est le suivant:
ColName | 2016-02-04 | 2016-02-05 | 2016-02-06 |
----------------------------------------------------------------
PlanMilling | 1000 | 2000 | 1500 |
MinStock | 100 | 100 | 100 |
QtyBuilding | 200 | 100 | 150 |
QtyStock | 1500 | 1500 | 1500 |
Quelqu'un peut-il résoudre mon cas? J'ai vraiment besoin de votre aide (désolé pour mon mauvais anglais) ..
Merci
qui est vraiment aide, merci! mais, j'ai un petit problème quand je mets à la procédure de magasin il n'y a aucun résultat quand j'exécute la procédure de magasin – Jackques
@Jackques Salut Jackques. Je suis désolé de l'entendre. Ce que vous faites maintenant, c'est d'abord reconnaître que j'ai résolu le problème que vous avez décrit dans votre question, en acceptant cette réponse. Votre question ne fait aucune mention des procédures stockées, il est donc impossible de changer maintenant ma réponse pour une question que vous posez dans un commentaire. Ce n'est pas comme ça qu'on fait les choses sur StackOverflow. Ce qui est mieux maintenant, si vous continuez à rencontrer ce problème, est de faire une nouvelle question sur StackOverflow, détaillant le nouveau problème que vous avez (c'est-à-dire que vous n'obtenez pas de sortie lors de l'exécution d'une procédure stockée). –
@Jackques Lorsque vous posez cette nouvelle question, revenez à cette réponse et donnez-moi un commentaire afin que je puisse trouver votre nouvelle question. Si personne ne répond à votre nouvelle question, je l'examinerai. –