SQL query Проблем

Член од
1 февруари 2007
Мислења
402
Поени од реакции
15
Ова е кверито и за сите производи кои припаѓаат на повеке категории ги дава како посебни редови како да го ресам пробав со динстинкт ама не бива пробав со GROUP BY Product.Id mi vika
Column 'Product.Id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
незнам што да правам
SELECT DISTINCT
Product.Id AS ID,
Product.Name AS Name,
Product.ShortDescription AS ShortDescription,
Product.Price As Price,
Product.Sku AS Barcode,
Manufacturer.Name AS Brand,
Category.Name AS Category,
Picture.SeoFilename,
Picture.MimeType
FROM Product
JOIN Product_Category_Mapping ON Product_Category_Mapping.ProductId = Product.Id
INNER JOIN Category ON Category.Id = Product_Category_Mapping.CategoryId
JOIN Product_Manufacturer_Mapping ON Product_Manufacturer_Mapping.ProductId = Product.Id
JOIN Manufacturer ON Manufacturer.Id = Product_Manufacturer_Mapping.ManufacturerId
JOIN Product_Picture_Mapping ON Product_Picture_Mapping.ProductId = Product.Id
JOIN Picture ON Picture.Id = Product_Picture_Mapping.PictureId
WHERE Sku IS NOT NULL
 

Attachments

Последно уредено:

Xibalba

Corona Australis
Член од
24 јануари 2012
Мислења
5.822
Поени од реакции
10.582
Логично е категоријата да е во Group by clause, ако веќе групираш производи по категорија.
 
Член од
1 февруари 2007
Мислења
402
Поени од реакции
15
Логично е категоријата да е во Group by clause, ако веќе групираш производи по категорија.
Ми треба листа од сите производи со атрибути со ги имаат ама нов сум у ова па главам[DOUBLEPOST=1553345308][/DOUBLEPOST]
... group by Category.id having Sku IS NOT NULL
Column 'Product.Id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
 
Член од
26 јануари 2009
Мислења
8.659
Поени од реакции
11.148
Ми треба листа од сите производи со атрибути со ги имаат ама нов сум у ова па главам[DOUBLEPOST=1553345308][/DOUBLEPOST]
Column 'Product.Id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
НЕ сум сигурен дали воопшто ти треба груп бај пошто викаш ти требаат сите производи иначе проблемот е ова

https://stackoverflow.com/questions/13999817/reason-for-column-is-invalid-in-the-select-list-because-it-is-not-contained-in-e

Suppose I have the following table T:

a b
--------
1 abc
1 def
1 ghi
2 jkl
2 mno
2 pqr
And I do the following query:

SELECT a, b
FROM T
GROUP BY a
The output should have two rows, one row where a=1 and a second row where a=2.

But what should the value of b show on each of these two rows? There are three possibilities in each case, and nothing in the query makes it clear which value to choose for b in each group. It's ambiguous.

Така што треба да имаш некоја операција ко сум ако имаш нумеричка вредност ко на пример количина на производ или макс во примеров за да знае кверито кој производ да го избере. Ама ако ти требаат сите производи не ти треба групирање.
 
Член од
1 февруари 2007
Мислења
402
Поени од реакции
15
Еве резултат од кверито како да се ресам од дупликативе тие со имаат повеке категории ги дава у посебен ред


Код:
55    Be You - Eau de Parfum 100 ml.    Мириса слично на Calvin Klein "Beauty"    895.0000    5907690127541    JFenzi    Parfemi za žene    be-you-eau-de-parfum-100-ml    image/png
55    Be You - Eau de Parfum 100 ml.    Мириса слично на Calvin Klein "Beauty"    895.0000    5907690127541    JFenzi    Sveži    be-you-eau-de-parfum-100-ml    image/png
38    C'est la vie - Eau de Parfum 100 ml.    Мириса слично на Lancôme "La vie est belle"    895.0000    5907690127879    JFenzi    Parfemi za žene    cest-la-vie-eau-de-parfum-100-ml    image/png
38    C'est la vie - Eau de Parfum 100 ml.    Мириса слично на Lancôme "La vie est belle"    895.0000    5907690127879    JFenzi    Slatki    cest-la-vie-eau-de-parfum-100-ml    image/png
38    C'est la vie - Eau de Parfum 100 ml.    Мириса слично на Lancôme "La vie est belle"    895.0000    5907690127879    JFenzi    Најпопуларни парфеми за 2017    cest-la-vie-eau-de-parfum-100-ml    image/png
84    Charme - Eau de Parfum 100 ml.    Мириса слично на Chloé "Chloé"    895.0000    5904730300919    JFenzi    Parfemi za žene    charme-eau-de-parfum-100-ml    image/png
84    Charme - Eau de Parfum 100 ml.    Мириса слично на Chloé "Chloé"    895.0000    5904730300919    JFenzi    Sveži    charme-eau-de-parfum-100-ml    image/png
37    Charme Naturel - Eau de Parfum 100 ml.    Мириса слично на Chloé "L'Eau de Chloé"    895.0000    5907690127800    JFenzi    Parfemi za žene    charme-naturel-eau-de-parfum-100-ml    image/png
37    Charme Naturel - Eau de Parfum 100 ml.    Мириса слично на Chloé "L'Eau de Chloé"    895.0000    5907690127800    JFenzi    Sveži    charme-naturel-eau-de-parfum-100-ml    image/png
83    City Tune - Eau de Parfum 100 ml.    Мириса слично на Calvin Klein "Downtown"    895.0000    5903111022181    JFenzi    Parfemi za žene    city-tune-eau-de-parfum-100-ml    image/png
83    City Tune - Eau de Parfum 100 ml.    Мириса слично на Calvin Klein "Downtown"    895.0000    5903111022181    JFenzi    Slatki    city-tune-eau-de-parfum-100-ml    image/png
69    Daily Lamour - Eau de Parfum 100 ml.    Мириса слично на Salvador Dalì "Laguna"    895.0000    5907690127671    JFenzi    Parfemi za žene    daily-lamour-eau-de-parfum-100-ml    image/png
69    Daily Lamour - Eau de Parfum 100 ml.    Мириса слично на Salvador Dalì "Laguna"    895.0000    5907690127671    JFenzi    Sveži    daily-lamour-eau-de-parfum-100-ml    image/png
69    Daily Lamour - Eau de Parfum 100 ml.    Мириса слично на Salvador Dalì "Laguna"    895.0000    5907690127671    JFenzi    Летни парфеми    daily-lamour-eau-de-parfum-100-ml    image/png
8    Day&Night Donna - Eau de Parfum 100 ml.    Мириса слично на Dolce&Gabbana "Dolce"    895.0000    5903111022365    JFenzi    Parfemi za žene    daynight-donna-eau-de-parfum-100-ml    image/png
8    Day&Night Donna - Eau de Parfum 100 ml.    Мириса слично на Dolce&Gabbana "Dolce"    895.0000    5903111022365    JFenzi    Sveži    daynight-donna-eau-de-parfum-100-ml    image/png
31    Day&Night Light Intense - Eau de Parfum 100 ml.    Мириса слично на Dolce&Gabbana "Light Blue"    895.0000    5904730300803    JFenzi    Parfemi za žene    daynight-light-intense-eau-de-parfum-100-ml    image/png
31    Day&Night Light Intense - Eau de Parfum 100 ml.    Мириса слично на Dolce&Gabbana "Light Blue"    895.0000    5904730300803    JFenzi    Sveži    daynight-light-intense-eau-de-parfum-100-ml    image/png
31    Day&Night Light Intense - Eau de Parfum 100 ml.    Мириса слично на Dolce&Gabbana "Light Blue"    895.0000    5904730300803    JFenzi    Летни парфеми    daynight-light-intense-eau-de-parfum-100-ml    image/png
31    Day&Night Light Intense - Eau de Parfum 100 ml.    Мириса слично на Dolce&Gabbana "Light Blue"    895.0000    5904730300803    JFenzi    Најпопуларни парфеми за 2017    daynight-light-intense-eau-de-parfum-100-ml    image/png
 
Член од
26 јануари 2009
Мислења
8.659
Поени од реакции
11.148
Ај види у база да не имаш некоја flag колона кај што имаш селектирано категорија за производ, мора да имаш такво нешто ако не треба да ти ги дава сите категории по производ, ако немаш очигледно ти фали.
 
Член од
24 март 2010
Мислења
11.984
Поени од реакции
16.546
А која категорија сакаш да ти се прикажува кога имаш продукт во повеќе од една?
 
Член од
24 март 2010
Мислења
11.984
Поени од реакции
16.546
bilo koja ne e u opste bitno
Ова ти е MS SQL решение (пробај дали работи, на слепо го куцам)
WITH ORDEREDPRODUCTS AS(
SELECT DISTINCT
Product.Id AS ID,
Product.Name AS Name,
Product.ShortDescription AS ShortDescription,
Product.Price As Price,
Product.Sku AS Barcode,
Manufacturer.Name AS Brand,
Category.Name AS Category,
Picture.SeoFilename,
Picture.MimeType,
ROW_NUMBER() OVER (PARTITION BY Product.Id ORDER BY Category.Name ASC) AS rowNumber
FROM Product
JOIN Product_Category_Mapping ON Product_Category_Mapping.ProductId = Product.Id
INNER JOIN Category ON Category.Id = Product_Category_Mapping.CategoryId
JOIN Product_Manufacturer_Mapping ON Product_Manufacturer_Mapping.ProductId = Product.Id
JOIN Manufacturer ON Manufacturer.Id = Product_Manufacturer_Mapping.ManufacturerId
JOIN Product_Picture_Mapping ON Product_Picture_Mapping.ProductId = Product.Id
JOIN Picture ON Picture.Id = Product_Picture_Mapping.PictureId
WHERE Sku IS NOT NULL
)

SELECT * FROM ORDEREDPRODUCTS WHERE rowNumber = 1

Или наместо се, лимитирај на тоа што сакаш да го враќаш.
 
Член од
1 февруари 2007
Мислења
402
Поени од реакции
15
Ова ти е MS SQL решение (пробај дали работи, на слепо го куцам)
WITH ORDEREDPRODUCTS AS(
SELECT DISTINCT
Product.Id AS ID,
Product.Name AS Name,
Product.ShortDescription AS ShortDescription,
Product.Price As Price,
Product.Sku AS Barcode,
Manufacturer.Name AS Brand,
Category.Name AS Category,
Picture.SeoFilename,
Picture.MimeType,
ROW_NUMBER() OVER (PARTITION BY Product.Id ORDER BY Category.Name ASC) AS rowNumber
FROM Product
JOIN Product_Category_Mapping ON Product_Category_Mapping.ProductId = Product.Id
INNER JOIN Category ON Category.Id = Product_Category_Mapping.CategoryId
JOIN Product_Manufacturer_Mapping ON Product_Manufacturer_Mapping.ProductId = Product.Id
JOIN Manufacturer ON Manufacturer.Id = Product_Manufacturer_Mapping.ManufacturerId
JOIN Product_Picture_Mapping ON Product_Picture_Mapping.ProductId = Product.Id
JOIN Picture ON Picture.Id = Product_Picture_Mapping.PictureId
WHERE Sku IS NOT NULL
)

SELECT * FROM ORDEREDPRODUCTS WHERE rowNumber = 1

Или наместо се, лимитирај на тоа што сакаш да го враќаш.
работе ко подмацкано да си ми поблиску па на ракија да те седнам :) fala
 
Член од
1 февруари 2007
Мислења
402
Поени од реакции
15
Код:
WITH ORDEREDPRODUCTS AS(
SELECT DISTINCT
Product.Id AS ID,
Product.Name AS Name,
Product.ShortDescription AS ShortDescription,
Product.Price As Price,
Product.Sku AS Barcode,
Manufacturer.Name AS Brand,
Category.Name AS Category,
CASE
WHEN Picture.MimeType = 'image/jpeg' THEN '/images/thumbs/' + SeoFilename + '.jpeg' AS 'Image Path',
WHEN Picture.MimeType = 'image/png' THEN '/images/thumbs/' + SeoFilename + '.png' AS 'Image Path'
END,
ROW_NUMBER() OVER (PARTITION BY Product.Id ORDER BY Category.Name ASC) AS rowNumber
FROM Product
JOIN Product_Category_Mapping ON Product_Category_Mapping.ProductId = Product.Id
INNER JOIN Category ON Category.Id = Product_Category_Mapping.CategoryId
JOIN Product_Manufacturer_Mapping ON Product_Manufacturer_Mapping.ProductId = Product.Id
JOIN Manufacturer ON Manufacturer.Id = Product_Manufacturer_Mapping.ManufacturerId
JOIN Product_Picture_Mapping ON Product_Picture_Mapping.ProductId = Product.Id
JOIN Picture ON Picture.Id = Product_Picture_Mapping.PictureId
WHERE Sku IS NOT NULL
)

SELECT * FROM ORDEREDPRODUCTS WHERE rowNumber = 1
se ubiv od brisenje i dodavanje navodnici i pak
Msg 156, Level 15, State 1, Line 11
Incorrect syntax near the keyword 'AS'.
 
Член од
24 март 2010
Мислења
11.984
Поени од реакции
16.546
Код:
WITH ORDEREDPRODUCTS AS(
SELECT DISTINCT
Product.Id AS ID,
Product.Name AS Name,
Product.ShortDescription AS ShortDescription,
Product.Price As Price,
Product.Sku AS Barcode,
Manufacturer.Name AS Brand,
Category.Name AS Category,
CASE
WHEN Picture.MimeType = 'image/jpeg' THEN '/images/thumbs/' + SeoFilename + '.jpeg' AS 'Image Path',
WHEN Picture.MimeType = 'image/png' THEN '/images/thumbs/' + SeoFilename + '.png' AS 'Image Path'
END,
ROW_NUMBER() OVER (PARTITION BY Product.Id ORDER BY Category.Name ASC) AS rowNumber
FROM Product
JOIN Product_Category_Mapping ON Product_Category_Mapping.ProductId = Product.Id
INNER JOIN Category ON Category.Id = Product_Category_Mapping.CategoryId
JOIN Product_Manufacturer_Mapping ON Product_Manufacturer_Mapping.ProductId = Product.Id
JOIN Manufacturer ON Manufacturer.Id = Product_Manufacturer_Mapping.ManufacturerId
JOIN Product_Picture_Mapping ON Product_Picture_Mapping.ProductId = Product.Id
JOIN Picture ON Picture.Id = Product_Picture_Mapping.PictureId
WHERE Sku IS NOT NULL
)

SELECT * FROM ORDEREDPRODUCTS WHERE rowNumber = 1
se ubiv od brisenje i dodavanje navodnici i pak
Msg 156, Level 15, State 1, Line 11
Incorrect syntax near the keyword 'AS'.
CASE
WHEN Picture.MimeType = 'image/jpeg' THEN '/images/thumbs/' + SeoFilename + '.jpeg'
WHEN Picture.MimeType = 'image/png' THEN '/images/thumbs/' + SeoFilename + '.png'
END AS Image Path,
 
На врв Bottom