Thomas Stockbruegger
asked on
Need some help wiht Create a View and inner join 3 tables
Hello,
I need some help with CREATE A VIEW and inner join.
I ask the question today before without a solution
Question:
I would like to join 3 tables.
A.Lieferungsbedingungenkur zbezeichnu ng is a number from 0 to 10 (type nvachar)
In a thrid tableTextbausteine are the explication to the numbers (ntext)
Table Textbausteine
-------------------------- ------
TextbausteinNr TextbausteinD
(nvachar 16 ) (ntext)
-------------------------- ---------
0 pick-up service by car
1 pick-up service by train
2 and so on……..
I would like to add these explications to the ViewLieferscheine2.
So that the A.Lieferungsbedingungenkur zbezeichnu ng is not the number but the text of TextbausteinD
How can I do this?
500 points with a solution.
Thank you.
Best regards,
Thomas
I think there error comes from here:
ON A.Lieferungsbedingungenkur zbezeichnu ng=C.Textb austeinNr\
I need some help with CREATE A VIEW and inner join.
I ask the question today before without a solution
Question:
I would like to join 3 tables.
A.Lieferungsbedingungenkur
In a thrid tableTextbausteine are the explication to the numbers (ntext)
Table Textbausteine
--------------------------
TextbausteinNr TextbausteinD
(nvachar 16 ) (ntext)
--------------------------
0 pick-up service by car
1 pick-up service by train
2 and so on……..
I would like to add these explications to the ViewLieferscheine2.
So that the A.Lieferungsbedingungenkur
How can I do this?
500 points with a solution.
Thank you.
Best regards,
Thomas
I think there error comes from here:
ON A.Lieferungsbedingungenkur
sql.Format("CREATE VIEW ViewLieferscheine4 AS SELECT\
A.LieferscheinNr, A.VersandName1, \
A.Lieferungsbedingungenkurzbezeichnung,\
SUM(B.Einheitwert8) AS Gewicht,C.TextbausteinD \
FROM Lieferscheine AS A inner join Lieferscheinpositionen AS B\
ON A.LieferscheinNr=B.LieferscheinNr\
inner join Textbausteine AS C\
ON A.Lieferungsbedingungenkurzbezeichnung=C.TextbausteinNr\
GROUP BY A.LieferscheinNr,A.VersandName1, \
A.Lieferungsbedingungenkurzbezeichnung,C.TextbausteinD");
1.BMP
--You could simply do:
SELECT A.LieferscheinNr, A.VersandName1,
A.Lieferungsbedingungenkur zbezeichnu ng,
SUM(B.Einheitwert8) AS Gewicht,
C.TextbausteinD,
C.TextbausteinNr
FROM Lieferscheine AS A
inner join Lieferscheinpositionen AS B ON A.LieferscheinNr=B.Liefers cheinNr
inner join Textbausteine AS C ON A.Lieferungsbedingungenkur zbezeichnu ng=C.Textb austeinNr
GROUP BY A.LieferscheinNr,A.Versand Name1, A.Lieferungsbedingungenkur zbezeichnu ng,C.Textb austeinD;
SELECT A.LieferscheinNr, A.VersandName1,
A.Lieferungsbedingungenkur
SUM(B.Einheitwert8) AS Gewicht,
C.TextbausteinD,
C.TextbausteinNr
FROM Lieferscheine AS A
inner join Lieferscheinpositionen AS B ON A.LieferscheinNr=B.Liefers
inner join Textbausteine AS C ON A.Lieferungsbedingungenkur
GROUP BY A.LieferscheinNr,A.Versand
ASKER
--You could simply do:
SELECT A.LieferscheinNr, A.VersandName1,
A.Lieferungsbedingungenkur zbezeichnu ng,
SUM(B.Einheitwert8) AS Gewicht,
C.TextbausteinD,
C.TextbausteinNr
FROM Lieferscheine AS A
inner join Lieferscheinpositionen AS B ON A.LieferscheinNr=B.Liefers cheinNr
inner join Textbausteine AS C ON A.Lieferungsbedingungenkur zbezeichnu ng=C.Textb austeinNr
GROUP BY A.LieferscheinNr,A.Versand Name1, A.Lieferungsbedingungenkur zbezeichnu ng,C.Textb austeinD;
NO the same error....will not work
SELECT A.LieferscheinNr, A.VersandName1,
A.Lieferungsbedingungenkur
SUM(B.Einheitwert8) AS Gewicht,
C.TextbausteinD,
C.TextbausteinNr
FROM Lieferscheine AS A
inner join Lieferscheinpositionen AS B ON A.LieferscheinNr=B.Liefers
inner join Textbausteine AS C ON A.Lieferungsbedingungenkur
GROUP BY A.LieferscheinNr,A.Versand
NO the same error....will not work
if you don't want to change the data type of the column itself (though recommended), you can do it "online" in the query:
SELECT A.LieferscheinNr
, A.VersandName1
, A.Lieferungsbedingungenkurzbezeichnung
, SUM(B.Einheitwert8) AS Gewicht
, cast(C.TextbausteinD as nvarchar(max)) TextbausteinD
, C.TextbausteinNr
FROM Lieferscheine AS A
JOIN Lieferscheinpositionen AS B
ON A.LieferscheinNr=B.LieferscheinNr
JOIN Textbausteine AS C
ON A.Lieferungsbedingungenkurzbezeichnung=C.TextbausteinNr
GROUP BY A.LieferscheinNr
, A.VersandName1
, A.Lieferungsbedingungenkurzbezeichnung
, cast(C.TextbausteinD as nvarchar(max));
ASKER
wrong syntax in row 1 near of max......is my error message
then you don't have SQL 2005+, or your db is in sql 2000 compatibility mode
and in case you cannot change the compatibility mode to 90 or higher:
SELECT A.LieferscheinNr
, A.VersandName1
, A.Lieferungsbedingungenkurzbezeichnung
, SUM(B.Einheitwert8) AS Gewicht
, cast(C.TextbausteinD as nvarchar(4000)) TextbausteinD
, C.TextbausteinNr
FROM Lieferscheine AS A
JOIN Lieferscheinpositionen AS B
ON A.LieferscheinNr=B.LieferscheinNr
JOIN Textbausteine AS C
ON A.Lieferungsbedingungenkurzbezeichnung=C.TextbausteinNr
GROUP BY A.LieferscheinNr
, A.VersandName1
, A.Lieferungsbedingungenkurzbezeichnung
, cast(C.TextbausteinD as nvarchar(4000));
ASKER
the type nvachar is no def. system typ = erro message.
I now the answer..... convert(nvachar,C.Textbaus teinD)
I now the answer..... convert(nvachar,C.Textbaus
SELECT A.LieferscheinNr
, A.VersandName1
, A.Lieferungsbedingungenkurzbezeichnung
, SUM(B.Einheitwert8) AS Gewicht
, convert(nvachar,C.TextbausteinD)
, C.TextbausteinNr
FROM Lieferscheine AS A
JOIN Lieferscheinpositionen AS B
ON A.LieferscheinNr=B.LieferscheinNr
JOIN Textbausteine AS C
ON A.Lieferungsbedingungenkurzbezeichnung=C.TextbausteinNr
GROUP BY A.LieferscheinNr
, A.VersandName1
, A.Lieferungsbedingungenkurzbezeichnung
, convert(nvachar,C.TextbausteinD);
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
please change that data type to NVARCHAR(MAX), and you should be fine.